Initial Release (#1)
parent
88e679415e
commit
24de43986f
|
@ -0,0 +1,2 @@
|
|||
# GoLand
|
||||
.idea/
|
48
README.md
48
README.md
|
@ -1,3 +1,51 @@
|
|||
# go-mcm
|
||||
|
||||
Go library for MCM
|
||||
|
||||
## Model Example
|
||||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"go.etztech.xyz/go-mcm/model"
|
||||
"go.etztech.xyz/go-mcm/model/django"
|
||||
)
|
||||
|
||||
func main() {
|
||||
query := model.NewQuery("<token>", "https://24carrotcraft.com/whitelist/api")
|
||||
builder := query.NewDjangoBuilder().Contains(django.PlayerUsername, "Etzelia")
|
||||
|
||||
players, err := query.Player(builder)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
|
||||
fmt.Printf("%#v\n", players[0])
|
||||
}
|
||||
```
|
||||
|
||||
Response (formatted)
|
||||
```go
|
||||
&model.Player{
|
||||
ID: 663,
|
||||
AuthUserID: 0,
|
||||
UUID: "de10775b-fcb1-4665-bce4-5924b2e30188",
|
||||
Username: "MrsEtzelia",
|
||||
ApplicationID: 1,
|
||||
FirstSeen: "2016-12-18",
|
||||
LastSeen: "2017-11-23",
|
||||
Link: "https://www.24carrotcraft.com/whitelist/dashboard/player/663",
|
||||
}
|
||||
|
||||
&model.Player{
|
||||
ID: 724,
|
||||
AuthUserID: 1,
|
||||
UUID: "bf0446a8-9695-4c41-aa4c-7ff45bfd1171",
|
||||
Username: "Etzelia",
|
||||
ApplicationID: 838,
|
||||
FirstSeen: "2016-12-02",
|
||||
LastSeen: "2019-10-02",
|
||||
Link: "https://www.24carrotcraft.com/whitelist/dashboard/player/724",
|
||||
}
|
||||
```
|
|
@ -0,0 +1,32 @@
|
|||
package model
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"go.etztech.xyz/go-mcm/model/django"
|
||||
)
|
||||
|
||||
type Alert struct {
|
||||
ID int64 `json:"id"`
|
||||
UserID int64 `json:"user_id"`
|
||||
Message string `json:"message"`
|
||||
Seen bool `json:"seen"`
|
||||
Date string `json:"date"`
|
||||
Link string `json:"link"`
|
||||
}
|
||||
|
||||
func (q *Query) Alert(builder *django.Builder) ([]*Alert, error) {
|
||||
endpoint := q.endpoint("alert", builder.QueryString())
|
||||
alerts := make([]*Alert, 0)
|
||||
|
||||
resp, err := response(endpoint)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
err = json.Unmarshal(resp, &alerts)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return alerts, nil
|
||||
}
|
|
@ -0,0 +1,37 @@
|
|||
package model
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"go.etztech.xyz/go-mcm/model/django"
|
||||
)
|
||||
|
||||
type Application struct {
|
||||
ID int64 `json:"id"`
|
||||
Username string `json:"username"`
|
||||
Age int64 `json:"age"`
|
||||
PlayerType string `json:"player_type"`
|
||||
EverBanned bool `json:"ever_banned"`
|
||||
EverBannedExplanation string `json:"ever_banned_explanation"`
|
||||
Reference string `json:"reference"`
|
||||
ReadRules string `json:"read_rules"`
|
||||
Accepted bool `json:"accepted"`
|
||||
Date string `json:"date"`
|
||||
Link string `json:"link"`
|
||||
}
|
||||
|
||||
func (q *Query) Application(builder *django.Builder) ([]*Application, error) {
|
||||
endpoint := q.endpoint("application", builder.QueryString())
|
||||
applications := make([]*Application, 0)
|
||||
|
||||
resp, err := response(endpoint)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
err = json.Unmarshal(resp, &applications)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return applications, nil
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
package django
|
||||
|
||||
const (
|
||||
AlertID = ID
|
||||
AlertUserID = "user_id"
|
||||
AlertMessage = "message"
|
||||
AlertSeen = "seen"
|
||||
AlertDate = "date"
|
||||
AlertLink = Link
|
||||
)
|
|
@ -0,0 +1,15 @@
|
|||
package django
|
||||
|
||||
const (
|
||||
ApplicationID = ID
|
||||
ApplicationUsername = "username"
|
||||
ApplicationAge = "age"
|
||||
ApplicationPlayerType = "player_type"
|
||||
ApplicationEverBanned = "ever_banned"
|
||||
ApplicationEverBannedExplanation = "ever_banned_explanation"
|
||||
ApplicationReference = "reference"
|
||||
ApplicationReadRules = "read_rules"
|
||||
ApplicationAccepted = "accepted"
|
||||
ApplicationDate = "date"
|
||||
ApplicationLink = Link
|
||||
)
|
|
@ -0,0 +1,163 @@
|
|||
package django
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
)
|
||||
|
||||
const (
|
||||
ID = "id"
|
||||
Link = "link"
|
||||
)
|
||||
|
||||
type Builder struct {
|
||||
Params []string
|
||||
}
|
||||
|
||||
func NewBuilder(token string) *Builder {
|
||||
return &Builder{[]string{fmt.Sprintf("api=%s", token)}}
|
||||
}
|
||||
|
||||
func (db *Builder) QueryString() string {
|
||||
return "?" + strings.Join(db.Params, "&")
|
||||
}
|
||||
|
||||
func (db *Builder) Exact(field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__exact=%s", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) IExact(field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__iexact=%s", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Contains(field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__contains=%s", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) IContains(field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__icontains=%s", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) In(field string, values ...string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__in=[%s]", field, strings.Join(values, ",")))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Gt(field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__gt=%s", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Gte(field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__gte=%s", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Lt(field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__lt=%s", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Lte(field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__lte=%s", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Startswith(field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__startswith=%s", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) IStartswith(field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__istartswith=%s", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Endswith(field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__endswith=%s", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) IEndswith(field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__iendswith=%s", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Range(field, from, to string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__range=(%s,%s)", field, from, to))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Date(field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__date=%s", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Year(field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__year=%s", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Month(field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__month=%s", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Day(field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__day=%s", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Week(field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__week=%s", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) WeekDay(field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__week_day=%s", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Quarter(field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__quarter=%s", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Time(field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__time=%s", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Hour(field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__hour=%s", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Minute(field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__minute=%s", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Second(field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__second=%s", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) IsNull(field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__isnull=%s", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Regex(field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__regex=r'%s'", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) IRegex(field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__iregex=r'%s'", field, value))
|
||||
return db
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
package django
|
||||
|
||||
const (
|
||||
IPID = ID
|
||||
IPPlayerID = "player_id"
|
||||
IPLastUsed = "last_used"
|
||||
IPLink = Link
|
||||
)
|
|
@ -0,0 +1,11 @@
|
|||
package django
|
||||
|
||||
const (
|
||||
NoteID = ID
|
||||
NotePlayerID = "player_id"
|
||||
NoteMessage = "message"
|
||||
NoteImportance = "importance"
|
||||
NoteStaffID = "staff_id"
|
||||
NoteDate = "date"
|
||||
NoteLink = Link
|
||||
)
|
|
@ -0,0 +1,12 @@
|
|||
package django
|
||||
|
||||
const (
|
||||
PlayerID = ID
|
||||
PlayerAuthUserID = "auth_user_id"
|
||||
PlayerUUID = "uuid"
|
||||
PlayerUsername = "username"
|
||||
PlayerApplicationID = "application_id"
|
||||
PlayerFirstSeen = "first_seen"
|
||||
PlayerLastSeen = "last_seen"
|
||||
PlayerLink = Link
|
||||
)
|
|
@ -0,0 +1,16 @@
|
|||
package django
|
||||
|
||||
const (
|
||||
TicketID = ID
|
||||
TicketPlayerID = "player_id"
|
||||
TicketMessage = "message"
|
||||
TicketPriority = "priority"
|
||||
TicketStaffID = "staff_id"
|
||||
TicketResolved = "resolved"
|
||||
TicketWorld = "world"
|
||||
TicketX = "x"
|
||||
TicketY = "Y"
|
||||
TicketZ = "Z"
|
||||
TicketDate = "date"
|
||||
TicketLink = Link
|
||||
)
|
|
@ -0,0 +1,11 @@
|
|||
package django
|
||||
|
||||
const (
|
||||
TicketNoteID = ID
|
||||
TicketNoteAuthorID = "author_id"
|
||||
TicketNoteTicketID = "ticket_id"
|
||||
TicketNoteMessage = "message"
|
||||
TicketNoteLastUpdate = "last_update"
|
||||
TicketNoteDate = "date"
|
||||
TicketNoteLink = Link
|
||||
)
|
|
@ -0,0 +1,13 @@
|
|||
package django
|
||||
|
||||
const (
|
||||
UserSettingsID = ID
|
||||
UserSettingsAuthUserID = "auth_user_id"
|
||||
UserSettingsDefaultResults = "default_results"
|
||||
UserSettingsDefaultTheme = "default_theme"
|
||||
UserSettingsDefaultTimezone = "default_timezone"
|
||||
UserSettingsSearchPlayerIP = "search_player_ip"
|
||||
UserSettingsShowTimestampChat = "show_timestamp_chat"
|
||||
UserSettingsLastIP = "last_ip"
|
||||
UserSettingsLink = Link
|
||||
)
|
|
@ -0,0 +1,30 @@
|
|||
package model
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"go.etztech.xyz/go-mcm/model/django"
|
||||
)
|
||||
|
||||
type IP struct {
|
||||
ID int64 `json:"id"`
|
||||
PlayerID int64 `json:"player_id"`
|
||||
LastUsed string `json:"last_used"`
|
||||
Link string `json:"link"`
|
||||
}
|
||||
|
||||
func (q *Query) IP(builder *django.Builder) ([]*IP, error) {
|
||||
endpoint := q.endpoint("ip", builder.QueryString())
|
||||
ips := make([]*IP, 0)
|
||||
|
||||
resp, err := response(endpoint)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
err = json.Unmarshal(resp, &ips)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return ips, nil
|
||||
}
|
|
@ -0,0 +1,47 @@
|
|||
package model
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"go.etztech.xyz/go-mcm/model/django"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type Query struct {
|
||||
Token string
|
||||
URL string
|
||||
}
|
||||
|
||||
func NewQuery(token, baseURL string) *Query {
|
||||
return &Query{
|
||||
Token: token,
|
||||
URL: fmt.Sprintf("%s/model", strings.TrimRight(baseURL, "/")),
|
||||
}
|
||||
}
|
||||
|
||||
func (q *Query) NewDjangoBuilder() *django.Builder {
|
||||
return django.NewBuilder(q.Token)
|
||||
}
|
||||
|
||||
func (q *Query) endpoint(model, query string) string {
|
||||
if !strings.HasPrefix(query, "?") {
|
||||
query = "?" + query
|
||||
}
|
||||
return fmt.Sprintf("%s/%s%s", q.URL, model, query)
|
||||
}
|
||||
|
||||
func response(endpoint string) ([]byte, error) {
|
||||
resp, err := http.Get(endpoint)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
body, err := ioutil.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return body, err
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
package model
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"go.etztech.xyz/go-mcm/model/django"
|
||||
)
|
||||
|
||||
type Importance string
|
||||
|
||||
const (
|
||||
ImportanceLow Importance = "L"
|
||||
ImportanceMedium Importance = "M"
|
||||
ImportanceHigh Importance = "H"
|
||||
)
|
||||
|
||||
type Note struct {
|
||||
ID int64 `json:"id"`
|
||||
PlayerID int64 `json:"player_id"`
|
||||
Message string `json:"message"`
|
||||
Importance Importance `json:"importance"`
|
||||
StaffID int64 `json:"staff_id"`
|
||||
Date string `json:"date"`
|
||||
Link string `json:"link"`
|
||||
}
|
||||
|
||||
func (q *Query) Note(builder *django.Builder) ([]*Note, error) {
|
||||
endpoint := q.endpoint("note", builder.QueryString())
|
||||
notes := make([]*Note, 0)
|
||||
|
||||
resp, err := response(endpoint)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
err = json.Unmarshal(resp, ¬es)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return notes, nil
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
package model
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"go.etztech.xyz/go-mcm/model/django"
|
||||
)
|
||||
|
||||
type Player struct {
|
||||
ID int64 `json:"id"`
|
||||
AuthUserID int64 `json:"auth_user_id"`
|
||||
UUID string `json:"uuid"`
|
||||
Username string `json:"username"`
|
||||
ApplicationID int64 `json:"application_id"`
|
||||
FirstSeen string `json:"first_seen"`
|
||||
LastSeen string `json:"last_seen"`
|
||||
Link string `json:"link"`
|
||||
}
|
||||
|
||||
func (q *Query) Player(builder *django.Builder) ([]*Player, error) {
|
||||
endpoint := q.endpoint("player", builder.QueryString())
|
||||
players := make([]*Player, 0)
|
||||
|
||||
resp, err := response(endpoint)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
err = json.Unmarshal(resp, &players)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return players, nil
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
package model
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"go.etztech.xyz/go-mcm/model/django"
|
||||
)
|
||||
|
||||
type Priority string
|
||||
|
||||
const (
|
||||
PriorityLow Priority = "L"
|
||||
PriorityMedium Priority = "M"
|
||||
PriorityHigh Priority = "H"
|
||||
)
|
||||
|
||||
type World string
|
||||
|
||||
const (
|
||||
WorldOverworld World = "O"
|
||||
WorldNether World = "N"
|
||||
WorldTheEnd World = "E"
|
||||
)
|
||||
|
||||
type Ticket struct {
|
||||
ID int64 `json:"id"`
|
||||
PlayerID int64 `json:"player_id"`
|
||||
Message string `json:"message"`
|
||||
Priority Priority `json:"priority"`
|
||||
StaffID int64 `json:"staff_id"`
|
||||
Resolved bool `json:"resolved"`
|
||||
World World `json:"world"`
|
||||
X string `json:"x"`
|
||||
Y string `json:"Y"`
|
||||
Z string `json:"Z"`
|
||||
Date string `json:"date"`
|
||||
Link string `json:"link"`
|
||||
}
|
||||
|
||||
func (q *Query) Ticket(builder *django.Builder) ([]*Ticket, error) {
|
||||
endpoint := q.endpoint("ticket", builder.QueryString())
|
||||
tickets := make([]*Ticket, 0)
|
||||
|
||||
resp, err := response(endpoint)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
err = json.Unmarshal(resp, &tickets)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return tickets, nil
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
package model
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"go.etztech.xyz/go-mcm/model/django"
|
||||
)
|
||||
|
||||
type TicketNote struct {
|
||||
ID int64 `json:"id"`
|
||||
AuthorID int64 `json:"author_id"`
|
||||
TicketID int64 `json:"ticket_id"`
|
||||
Message string `json:"message"`
|
||||
LastUpdate string `json:"last_update"`
|
||||
Date string `json:"date"`
|
||||
Link string `json:"link"`
|
||||
}
|
||||
|
||||
func (q *Query) TicketNote(builder *django.Builder) ([]*TicketNote, error) {
|
||||
endpoint := q.endpoint("ticketnote", builder.QueryString())
|
||||
ticketNotes := make([]*TicketNote, 0)
|
||||
|
||||
resp, err := response(endpoint)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
err = json.Unmarshal(resp, &ticketNotes)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return ticketNotes, nil
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
package model
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"go.etztech.xyz/go-mcm/model/django"
|
||||
)
|
||||
|
||||
type Results int64
|
||||
|
||||
const (
|
||||
Results10 Results = 10
|
||||
Results25 Results = 25
|
||||
Results50 Results = 50
|
||||
Results100 Results = 100
|
||||
ResultsAll Results = -1
|
||||
)
|
||||
|
||||
type Theme string
|
||||
|
||||
const (
|
||||
ThemesDefault Theme = "DE"
|
||||
ThemesDark Theme = "DA"
|
||||
ThemesSolar Theme = "SO"
|
||||
ThemesSlate Theme = "SL"
|
||||
)
|
||||
|
||||
type UserSettings struct {
|
||||
ID int64 `json:"id"`
|
||||
AuthUserID int64 `json:"auth_user_id"`
|
||||
DefaultResults Results `json:"default_results"`
|
||||
DefaultTheme Theme `json:"default_theme"`
|
||||
DefaultTimezone string `json:"default_timezone"`
|
||||
SearchPlayerIP bool `json:"search_player_ip"`
|
||||
ShowTimestampChat bool `json:"show_timestamp_chat"`
|
||||
LastIP string `json:"last_ip"`
|
||||
Link string `json:"link"`
|
||||
}
|
||||
|
||||
func (q *Query) UserSettings(builder *django.Builder) ([]*UserSettings, error) {
|
||||
endpoint := q.endpoint("usersettings", builder.QueryString())
|
||||
userSettingss := make([]*UserSettings, 0)
|
||||
|
||||
resp, err := response(endpoint)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
err = json.Unmarshal(resp, &userSettingss)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return userSettingss, nil
|
||||
}
|
Loading…
Reference in New Issue