Compare commits
8 Commits
model_post
...
master
Author | SHA1 | Date |
---|---|---|
jolheiser | 3a2804df4c | |
Etzelia | 05b38710c5 | |
Etzelia | d2b27d7edf | |
Etzelia | e1ed806ef6 | |
Etzelia | 40808d69ca | |
Etzelia | d78d4ddf9f | |
Etzelia | f652bbd2bd | |
Etzelia | 0ae5f0c704 |
|
@ -8,9 +8,9 @@ package main
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"go.etztech.xyz/go-mcm"
|
||||
"go.etztech.xyz/go-mcm/model"
|
||||
"go.etztech.xyz/go-mcm/model/django"
|
||||
"git.canopymc.net/Etzelia/go-mcm"
|
||||
"git.canopymc.net/Etzelia/go-mcm/model"
|
||||
"git.canopymc.net/Etzelia/go-mcm/model/django"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
|
2
go.mod
2
go.mod
|
@ -1,3 +1,3 @@
|
|||
module go.etztech.xyz/go-mcm
|
||||
module git.jojodev.com/Minecraft/go-mcm
|
||||
|
||||
go 1.13
|
||||
|
|
|
@ -1,11 +1,17 @@
|
|||
package internal
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"net/url"
|
||||
)
|
||||
|
||||
type Status struct {
|
||||
Success bool `json:"success"`
|
||||
Message string `json:"message"`
|
||||
}
|
||||
|
||||
func ResponseGet(endpoint string) ([]byte, error) {
|
||||
resp, err := http.Get(endpoint)
|
||||
if err != nil {
|
||||
|
@ -36,7 +42,17 @@ func ResponsePost(endpoint string, form url.Values) ([]byte, error) {
|
|||
return body, err
|
||||
}
|
||||
|
||||
type Status struct {
|
||||
Success bool `json:"success"`
|
||||
Message string `json:"message"`
|
||||
func ResponseStatus(endpoint string, form url.Values) (*Status, error) {
|
||||
resp, err := ResponsePost(endpoint, form)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
status := &Status{}
|
||||
err = json.Unmarshal(resp, &status)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return status, nil
|
||||
}
|
||||
|
|
5
mcm.go
5
mcm.go
|
@ -2,9 +2,10 @@ package mcm
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"go.etztech.xyz/go-mcm/model"
|
||||
"go.etztech.xyz/go-mcm/web"
|
||||
"strings"
|
||||
|
||||
"git.jojodev.com/Minecraft/go-mcm/model"
|
||||
"git.jojodev.com/Minecraft/go-mcm/web"
|
||||
)
|
||||
|
||||
type MCM struct {
|
||||
|
|
|
@ -2,8 +2,9 @@ package model
|
|||
|
||||
import (
|
||||
"encoding/json"
|
||||
"go.etztech.xyz/go-mcm/internal"
|
||||
"go.etztech.xyz/go-mcm/model/django"
|
||||
|
||||
"git.jojodev.com/Minecraft/go-mcm/internal"
|
||||
"git.jojodev.com/Minecraft/go-mcm/model/django"
|
||||
)
|
||||
|
||||
type Alert struct {
|
||||
|
@ -13,10 +14,12 @@ type Alert struct {
|
|||
Seen bool `json:"seen"`
|
||||
Date string `json:"date"`
|
||||
Link string `json:"link"`
|
||||
|
||||
model *Model `json:"-"`
|
||||
}
|
||||
|
||||
func (q *Model) Alert(builder *django.Builder) ([]*Alert, error) {
|
||||
endpoint := q.endpoint("alert", builder.QueryString())
|
||||
endpoint := q.queryEndpoint("alert", builder.QueryString())
|
||||
alerts := make([]*Alert, 0)
|
||||
|
||||
resp, err := internal.ResponseGet(endpoint)
|
||||
|
@ -29,5 +32,14 @@ func (q *Model) Alert(builder *django.Builder) ([]*Alert, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
for _, alert := range alerts {
|
||||
alert.model = q
|
||||
}
|
||||
|
||||
return alerts, nil
|
||||
}
|
||||
|
||||
func (a *Alert) Save() (*internal.Status, error) {
|
||||
endpoint := a.model.endpoint("alert")
|
||||
return internal.ResponseStatus(endpoint, a.model.Values(a))
|
||||
}
|
||||
|
|
|
@ -2,8 +2,9 @@ package model
|
|||
|
||||
import (
|
||||
"encoding/json"
|
||||
"go.etztech.xyz/go-mcm/internal"
|
||||
"go.etztech.xyz/go-mcm/model/django"
|
||||
|
||||
"git.jojodev.com/Minecraft/go-mcm/internal"
|
||||
"git.jojodev.com/Minecraft/go-mcm/model/django"
|
||||
)
|
||||
|
||||
type Application struct {
|
||||
|
@ -15,13 +16,15 @@ type Application struct {
|
|||
EverBannedExplanation string `json:"ever_banned_explanation"`
|
||||
Reference string `json:"reference"`
|
||||
ReadRules string `json:"read_rules"`
|
||||
Accepted bool `json:"accepted"`
|
||||
Accepted *bool `json:"accepted"`
|
||||
Date string `json:"date"`
|
||||
Link string `json:"link"`
|
||||
|
||||
model *Model `json:"-"`
|
||||
}
|
||||
|
||||
func (q *Model) Application(builder *django.Builder) ([]*Application, error) {
|
||||
endpoint := q.endpoint("application", builder.QueryString())
|
||||
endpoint := q.queryEndpoint("application", builder.QueryString())
|
||||
applications := make([]*Application, 0)
|
||||
|
||||
resp, err := internal.ResponseGet(endpoint)
|
||||
|
@ -34,5 +37,14 @@ func (q *Model) Application(builder *django.Builder) ([]*Application, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
for _, application := range applications {
|
||||
application.model = q
|
||||
}
|
||||
|
||||
return applications, nil
|
||||
}
|
||||
|
||||
func (a *Application) Save() (*internal.Status, error) {
|
||||
endpoint := a.model.endpoint("application")
|
||||
return internal.ResponseStatus(endpoint, a.model.Values(a))
|
||||
}
|
||||
|
|
|
@ -17,30 +17,40 @@ type Builder struct {
|
|||
}
|
||||
|
||||
func NewBuilder(token string) *Builder {
|
||||
return &Builder{[]string{fmt.Sprintf("api=%s", token)}}
|
||||
return &Builder{[]string{fmt.Sprintf("api=%v", token)}}
|
||||
}
|
||||
|
||||
func (db *Builder) QueryString() string {
|
||||
return "?" + strings.Join(db.Params, "&")
|
||||
}
|
||||
|
||||
func (db *Builder) Exact(field Field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__exact=%s", field, value))
|
||||
func (db *Builder) Eq(field Field, value interface{}) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__eq=%v", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) IExact(field Field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__iexact=%s", field, value))
|
||||
func (db *Builder) Ne(field Field, value interface{}) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__ne=%v", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Contains(field Field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__contains=%s", field, value))
|
||||
func (db *Builder) Exact(field Field, value interface{}) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__exact=%v", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) IContains(field Field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__icontains=%s", field, value))
|
||||
func (db *Builder) IExact(field Field, value interface{}) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__iexact=%v", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Contains(field Field, value interface{}) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__contains=%v", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) IContains(field Field, value interface{}) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__icontains=%v", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
|
@ -49,43 +59,43 @@ func (db *Builder) In(field string, values ...string) *Builder {
|
|||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Gt(field Field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__gt=%s", field, value))
|
||||
func (db *Builder) Gt(field Field, value interface{}) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__gt=%v", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Gte(field Field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__gte=%s", field, value))
|
||||
func (db *Builder) Gte(field Field, value interface{}) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__gte=%v", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Lt(field Field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__lt=%s", field, value))
|
||||
func (db *Builder) Lt(field Field, value interface{}) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__lt=%v", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Lte(field Field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__lte=%s", field, value))
|
||||
func (db *Builder) Lte(field Field, value interface{}) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__lte=%v", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Startswith(field Field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__startswith=%s", field, value))
|
||||
func (db *Builder) Startswith(field Field, value interface{}) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__startswith=%v", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) IStartswith(field Field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__istartswith=%s", field, value))
|
||||
func (db *Builder) IStartswith(field Field, value interface{}) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__istartswith=%v", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Endswith(field Field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__endswith=%s", field, value))
|
||||
func (db *Builder) Endswith(field Field, value interface{}) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__endswith=%v", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) IEndswith(field Field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__iendswith=%s", field, value))
|
||||
func (db *Builder) IEndswith(field Field, value interface{}) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__iendswith=%v", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
|
@ -94,72 +104,72 @@ func (db *Builder) Range(field Field, from, to string) *Builder {
|
|||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Date(field Field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__date=%s", field, value))
|
||||
func (db *Builder) Date(field Field, value interface{}) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__date=%v", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Year(field Field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__year=%s", field, value))
|
||||
func (db *Builder) Year(field Field, value interface{}) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__year=%v", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Month(field Field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__month=%s", field, value))
|
||||
func (db *Builder) Month(field Field, value interface{}) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__month=%v", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Day(field Field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__day=%s", field, value))
|
||||
func (db *Builder) Day(field Field, value interface{}) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__day=%v", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Week(field Field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__week=%s", field, value))
|
||||
func (db *Builder) Week(field Field, value interface{}) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__week=%v", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) WeekDay(field Field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__week_day=%s", field, value))
|
||||
func (db *Builder) WeekDay(field Field, value interface{}) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__week_day=%v", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Quarter(field Field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__quarter=%s", field, value))
|
||||
func (db *Builder) Quarter(field Field, value interface{}) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__quarter=%v", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Time(field Field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__time=%s", field, value))
|
||||
func (db *Builder) Time(field Field, value interface{}) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__time=%v", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Hour(field Field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__hour=%s", field, value))
|
||||
func (db *Builder) Hour(field Field, value interface{}) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__hour=%v", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Minute(field Field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__minute=%s", field, value))
|
||||
func (db *Builder) Minute(field Field, value interface{}) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__minute=%v", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Second(field Field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__second=%s", field, value))
|
||||
func (db *Builder) Second(field Field, value interface{}) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__second=%v", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) IsNull(field Field, value string) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__isnull=%s", field, value))
|
||||
func (db *Builder) IsNull(field Field, value interface{}) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__isnull=%v", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) Regex(field Field, value string) *Builder {
|
||||
func (db *Builder) Regex(field Field, value interface{}) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__regex=r'%s'", field, value))
|
||||
return db
|
||||
}
|
||||
|
||||
func (db *Builder) IRegex(field Field, value string) *Builder {
|
||||
func (db *Builder) IRegex(field Field, value interface{}) *Builder {
|
||||
db.Params = append(db.Params, fmt.Sprintf("%s__iregex=r'%s'", field, value))
|
||||
return db
|
||||
}
|
||||
|
|
|
@ -8,5 +8,6 @@ const (
|
|||
PlayerApplicationID Field = "application_id"
|
||||
PlayerFirstSeen Field = "first_seen"
|
||||
PlayerLastSeen Field = "last_seen"
|
||||
PlayerDiscordID Field = "discord_id"
|
||||
PlayerLink = Link
|
||||
)
|
||||
|
|
18
model/ip.go
18
model/ip.go
|
@ -2,8 +2,9 @@ package model
|
|||
|
||||
import (
|
||||
"encoding/json"
|
||||
"go.etztech.xyz/go-mcm/internal"
|
||||
"go.etztech.xyz/go-mcm/model/django"
|
||||
|
||||
"git.jojodev.com/Minecraft/go-mcm/internal"
|
||||
"git.jojodev.com/Minecraft/go-mcm/model/django"
|
||||
)
|
||||
|
||||
type IP struct {
|
||||
|
@ -11,10 +12,12 @@ type IP struct {
|
|||
PlayerID int64 `json:"player_id"`
|
||||
LastUsed string `json:"last_used"`
|
||||
Link string `json:"link"`
|
||||
|
||||
model *Model `json:"-"`
|
||||
}
|
||||
|
||||
func (q *Model) IP(builder *django.Builder) ([]*IP, error) {
|
||||
endpoint := q.endpoint("ip", builder.QueryString())
|
||||
endpoint := q.queryEndpoint("ip", builder.QueryString())
|
||||
ips := make([]*IP, 0)
|
||||
|
||||
resp, err := internal.ResponseGet(endpoint)
|
||||
|
@ -27,5 +30,14 @@ func (q *Model) IP(builder *django.Builder) ([]*IP, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
for _, ip := range ips {
|
||||
ip.model = q
|
||||
}
|
||||
|
||||
return ips, nil
|
||||
}
|
||||
|
||||
func (i *IP) Save() (*internal.Status, error) {
|
||||
endpoint := i.model.endpoint("ip")
|
||||
return internal.ResponseStatus(endpoint, i.model.Values(i))
|
||||
}
|
||||
|
|
|
@ -2,8 +2,11 @@ package model
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"go.etztech.xyz/go-mcm/model/django"
|
||||
"net/url"
|
||||
"reflect"
|
||||
"strings"
|
||||
|
||||
"git.jojodev.com/Minecraft/go-mcm/model/django"
|
||||
)
|
||||
|
||||
type Model struct {
|
||||
|
@ -22,9 +25,39 @@ func (q *Model) NewDjangoBuilder() *django.Builder {
|
|||
return django.NewBuilder(q.Token)
|
||||
}
|
||||
|
||||
func (q *Model) endpoint(model, query string) string {
|
||||
func (q *Model) endpoint(model string) string {
|
||||
return fmt.Sprintf("%s/%s/", q.URL, model)
|
||||
}
|
||||
|
||||
func (q *Model) queryEndpoint(model, query string) string {
|
||||
if !strings.HasPrefix(query, "?") {
|
||||
query = "?" + query
|
||||
}
|
||||
return fmt.Sprintf("%s/%s%s", q.URL, model, query)
|
||||
return fmt.Sprintf("%s%s", q.endpoint(model), query)
|
||||
}
|
||||
|
||||
func (q *Model) Values(i interface{}) url.Values {
|
||||
values := url.Values{}
|
||||
values.Set("api", q.Token)
|
||||
iVal := reflect.ValueOf(i).Elem()
|
||||
typ := iVal.Type()
|
||||
for i := 0; i < iVal.NumField(); i++ {
|
||||
tag := typ.Field(i).Tag.Get("json")
|
||||
if tag != "-" {
|
||||
values.Set(strings.ToLower(tag), PyConvert(iVal.Field(i)))
|
||||
}
|
||||
}
|
||||
return values
|
||||
}
|
||||
|
||||
func PyConvert(value reflect.Value) string {
|
||||
switch value.Kind() {
|
||||
case reflect.Bool:
|
||||
if fmt.Sprint(value) == "true" {
|
||||
return "True"
|
||||
}
|
||||
return "False"
|
||||
default:
|
||||
return fmt.Sprint(value)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,8 +2,9 @@ package model
|
|||
|
||||
import (
|
||||
"encoding/json"
|
||||
"go.etztech.xyz/go-mcm/internal"
|
||||
"go.etztech.xyz/go-mcm/model/django"
|
||||
|
||||
"git.jojodev.com/Minecraft/go-mcm/internal"
|
||||
"git.jojodev.com/Minecraft/go-mcm/model/django"
|
||||
)
|
||||
|
||||
type Importance string
|
||||
|
@ -22,10 +23,12 @@ type Note struct {
|
|||
StaffID int64 `json:"staff_id"`
|
||||
Date string `json:"date"`
|
||||
Link string `json:"link"`
|
||||
|
||||
model *Model `json:"-"`
|
||||
}
|
||||
|
||||
func (q *Model) Note(builder *django.Builder) ([]*Note, error) {
|
||||
endpoint := q.endpoint("note", builder.QueryString())
|
||||
endpoint := q.queryEndpoint("note", builder.QueryString())
|
||||
notes := make([]*Note, 0)
|
||||
|
||||
resp, err := internal.ResponseGet(endpoint)
|
||||
|
@ -38,5 +41,14 @@ func (q *Model) Note(builder *django.Builder) ([]*Note, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
for _, note := range notes {
|
||||
note.model = q
|
||||
}
|
||||
|
||||
return notes, nil
|
||||
}
|
||||
|
||||
func (n *Note) Save() (*internal.Status, error) {
|
||||
endpoint := n.model.endpoint("note")
|
||||
return internal.ResponseStatus(endpoint, n.model.Values(n))
|
||||
}
|
||||
|
|
|
@ -2,8 +2,9 @@ package model
|
|||
|
||||
import (
|
||||
"encoding/json"
|
||||
"go.etztech.xyz/go-mcm/internal"
|
||||
"go.etztech.xyz/go-mcm/model/django"
|
||||
|
||||
"git.jojodev.com/Minecraft/go-mcm/internal"
|
||||
"git.jojodev.com/Minecraft/go-mcm/model/django"
|
||||
)
|
||||
|
||||
type Player struct {
|
||||
|
@ -14,11 +15,14 @@ type Player struct {
|
|||
ApplicationID int64 `json:"application_id"`
|
||||
FirstSeen string `json:"first_seen"`
|
||||
LastSeen string `json:"last_seen"`
|
||||
DiscordID string `json:"discord_id"`
|
||||
Link string `json:"link"`
|
||||
|
||||
model *Model `json:"-"`
|
||||
}
|
||||
|
||||
func (q *Model) Player(builder *django.Builder) ([]*Player, error) {
|
||||
endpoint := q.endpoint("player", builder.QueryString())
|
||||
endpoint := q.queryEndpoint("player", builder.QueryString())
|
||||
players := make([]*Player, 0)
|
||||
|
||||
resp, err := internal.ResponseGet(endpoint)
|
||||
|
@ -31,5 +35,14 @@ func (q *Model) Player(builder *django.Builder) ([]*Player, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
for _, player := range players {
|
||||
player.model = q
|
||||
}
|
||||
|
||||
return players, nil
|
||||
}
|
||||
|
||||
func (p *Player) Save() (*internal.Status, error) {
|
||||
endpoint := p.model.endpoint("player")
|
||||
return internal.ResponseStatus(endpoint, p.model.Values(p))
|
||||
}
|
||||
|
|
|
@ -2,8 +2,9 @@ package model
|
|||
|
||||
import (
|
||||
"encoding/json"
|
||||
"go.etztech.xyz/go-mcm/internal"
|
||||
"go.etztech.xyz/go-mcm/model/django"
|
||||
|
||||
"git.jojodev.com/Minecraft/go-mcm/internal"
|
||||
"git.jojodev.com/Minecraft/go-mcm/model/django"
|
||||
)
|
||||
|
||||
type Priority string
|
||||
|
@ -35,10 +36,12 @@ type Ticket struct {
|
|||
Z string `json:"Z"`
|
||||
Date string `json:"date"`
|
||||
Link string `json:"link"`
|
||||
|
||||
model *Model `json:"-"`
|
||||
}
|
||||
|
||||
func (q *Model) Ticket(builder *django.Builder) ([]*Ticket, error) {
|
||||
endpoint := q.endpoint("ticket", builder.QueryString())
|
||||
endpoint := q.queryEndpoint("ticket", builder.QueryString())
|
||||
tickets := make([]*Ticket, 0)
|
||||
|
||||
resp, err := internal.ResponseGet(endpoint)
|
||||
|
@ -51,5 +54,14 @@ func (q *Model) Ticket(builder *django.Builder) ([]*Ticket, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
for _, ticket := range tickets {
|
||||
ticket.model = q
|
||||
}
|
||||
|
||||
return tickets, nil
|
||||
}
|
||||
|
||||
func (t *Ticket) Save() (*internal.Status, error) {
|
||||
endpoint := t.model.endpoint("ticket")
|
||||
return internal.ResponseStatus(endpoint, t.model.Values(t))
|
||||
}
|
||||
|
|
|
@ -2,8 +2,9 @@ package model
|
|||
|
||||
import (
|
||||
"encoding/json"
|
||||
"go.etztech.xyz/go-mcm/internal"
|
||||
"go.etztech.xyz/go-mcm/model/django"
|
||||
|
||||
"git.jojodev.com/Minecraft/go-mcm/internal"
|
||||
"git.jojodev.com/Minecraft/go-mcm/model/django"
|
||||
)
|
||||
|
||||
type TicketNote struct {
|
||||
|
@ -14,10 +15,12 @@ type TicketNote struct {
|
|||
LastUpdate string `json:"last_update"`
|
||||
Date string `json:"date"`
|
||||
Link string `json:"link"`
|
||||
|
||||
model *Model `json:"-"`
|
||||
}
|
||||
|
||||
func (q *Model) TicketNote(builder *django.Builder) ([]*TicketNote, error) {
|
||||
endpoint := q.endpoint("ticketnote", builder.QueryString())
|
||||
endpoint := q.queryEndpoint("ticketnote", builder.QueryString())
|
||||
ticketNotes := make([]*TicketNote, 0)
|
||||
|
||||
resp, err := internal.ResponseGet(endpoint)
|
||||
|
@ -30,5 +33,14 @@ func (q *Model) TicketNote(builder *django.Builder) ([]*TicketNote, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
for _, ticketNote := range ticketNotes {
|
||||
ticketNote.model = q
|
||||
}
|
||||
|
||||
return ticketNotes, nil
|
||||
}
|
||||
|
||||
func (t *TicketNote) Save() (*internal.Status, error) {
|
||||
endpoint := t.model.endpoint("ticketnote")
|
||||
return internal.ResponseStatus(endpoint, t.model.Values(t))
|
||||
}
|
||||
|
|
|
@ -2,8 +2,9 @@ package model
|
|||
|
||||
import (
|
||||
"encoding/json"
|
||||
"go.etztech.xyz/go-mcm/internal"
|
||||
"go.etztech.xyz/go-mcm/model/django"
|
||||
|
||||
"git.jojodev.com/Minecraft/go-mcm/internal"
|
||||
"git.jojodev.com/Minecraft/go-mcm/model/django"
|
||||
)
|
||||
|
||||
type Results int64
|
||||
|
@ -35,10 +36,12 @@ type UserSettings struct {
|
|||
ShowTimestampChat bool `json:"show_timestamp_chat"`
|
||||
LastIP string `json:"last_ip"`
|
||||
Link string `json:"link"`
|
||||
|
||||
model *Model `json:"-"`
|
||||
}
|
||||
|
||||
func (q *Model) UserSettings(builder *django.Builder) ([]*UserSettings, error) {
|
||||
endpoint := q.endpoint("usersettings", builder.QueryString())
|
||||
endpoint := q.queryEndpoint("usersettings", builder.QueryString())
|
||||
userSettingss := make([]*UserSettings, 0)
|
||||
|
||||
resp, err := internal.ResponseGet(endpoint)
|
||||
|
@ -51,5 +54,14 @@ func (q *Model) UserSettings(builder *django.Builder) ([]*UserSettings, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
for _, userSetting := range userSettingss {
|
||||
userSetting.model = q
|
||||
}
|
||||
|
||||
return userSettingss, nil
|
||||
}
|
||||
|
||||
func (u *UserSettings) Save() (*internal.Status, error) {
|
||||
endpoint := u.model.endpoint("usersettings")
|
||||
return internal.ResponseStatus(endpoint, u.model.Values(u))
|
||||
}
|
||||
|
|
17
web/alert.go
17
web/alert.go
|
@ -1,14 +1,13 @@
|
|||
package web
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"go.etztech.xyz/go-mcm/internal"
|
||||
"net/url"
|
||||
|
||||
"git.jojodev.com/Minecraft/go-mcm/internal"
|
||||
)
|
||||
|
||||
func (web *Web) Alert(message string, ping bool) (*internal.Status, error) {
|
||||
endpoint := web.endpoint("alert")
|
||||
status := &internal.Status{}
|
||||
|
||||
form := url.Values{}
|
||||
form.Add("api", web.Token)
|
||||
|
@ -17,15 +16,5 @@ func (web *Web) Alert(message string, ping bool) (*internal.Status, error) {
|
|||
form.Add("ping", "True")
|
||||
}
|
||||
|
||||
resp, err := internal.ResponsePost(endpoint, form)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
err = json.Unmarshal(resp, &status)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return status, nil
|
||||
return internal.ResponseStatus(endpoint, form)
|
||||
}
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
package web
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"go.etztech.xyz/go-mcm/internal"
|
||||
"net/url"
|
||||
|
||||
"git.jojodev.com/Minecraft/go-mcm/internal"
|
||||
)
|
||||
|
||||
func (web *Web) Discord(message string, ping bool) (*internal.Status, error) {
|
||||
endpoint := web.endpoint("discord")
|
||||
status := &internal.Status{}
|
||||
|
||||
form := url.Values{}
|
||||
form.Add("api", web.Token)
|
||||
|
@ -17,15 +16,5 @@ func (web *Web) Discord(message string, ping bool) (*internal.Status, error) {
|
|||
form.Add("ping", "True")
|
||||
}
|
||||
|
||||
resp, err := internal.ResponsePost(endpoint, form)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
err = json.Unmarshal(resp, &status)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return status, nil
|
||||
return internal.ResponseStatus(endpoint, form)
|
||||
}
|
||||
|
|
|
@ -3,7 +3,8 @@ package web
|
|||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"go.etztech.xyz/go-mcm/internal"
|
||||
|
||||
"git.jojodev.com/Minecraft/go-mcm/internal"
|
||||
)
|
||||
|
||||
type Log struct {
|
||||
|
|
|
@ -3,7 +3,8 @@ package web
|
|||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"go.etztech.xyz/go-mcm/internal"
|
||||
|
||||
"git.jojodev.com/Minecraft/go-mcm/internal"
|
||||
)
|
||||
|
||||
type Online struct {
|
||||
|
|
Loading…
Reference in New Issue