94 lines
1.9 KiB
Go
94 lines
1.9 KiB
Go
|
package sn
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"time"
|
||
|
)
|
||
|
|
||
|
type GraphQLPayload struct {
|
||
|
Query string `json:"query"`
|
||
|
Variables map[string]interface{} `json:"variables,omitempty"`
|
||
|
}
|
||
|
|
||
|
type GraphQLError struct {
|
||
|
Message string `json:"message"`
|
||
|
}
|
||
|
|
||
|
type User struct {
|
||
|
Name string `json:"name"`
|
||
|
}
|
||
|
|
||
|
type Comment struct {
|
||
|
Id int `json:"id,string"`
|
||
|
Text string `json:"text"`
|
||
|
User User `json:"user"`
|
||
|
Comments []Comment `json:"comments"`
|
||
|
}
|
||
|
|
||
|
type CreateCommentsResponse struct {
|
||
|
Errors []GraphQLError `json:"errors"`
|
||
|
Data struct {
|
||
|
CreateComment Comment `json:"createComment"`
|
||
|
} `json:"data"`
|
||
|
}
|
||
|
|
||
|
type Item struct {
|
||
|
Id int `json:"id,string"`
|
||
|
Title string `json:"title"`
|
||
|
Url string `json:"url"`
|
||
|
Sats int `json:"sats"`
|
||
|
CreatedAt time.Time `json:"createdAt"`
|
||
|
Comments []Comment `json:"comments"`
|
||
|
NComments int `json:"ncomments"`
|
||
|
}
|
||
|
|
||
|
type UpsertLinkResponse struct {
|
||
|
Errors []GraphQLError `json:"errors"`
|
||
|
Data struct {
|
||
|
UpsertLink Item `json:"upsertLink"`
|
||
|
} `json:"data"`
|
||
|
}
|
||
|
|
||
|
type ItemsResponse struct {
|
||
|
Errors []GraphQLError `json:"errors"`
|
||
|
Data struct {
|
||
|
Items struct {
|
||
|
Items []Item `json:"items"`
|
||
|
Cursor string `json:"cursor"`
|
||
|
} `json:"items"`
|
||
|
} `json:"data"`
|
||
|
}
|
||
|
|
||
|
type HasNewNotesResponse struct {
|
||
|
Errors []GraphQLError `json:"errors"`
|
||
|
Data struct {
|
||
|
HasNewNotes bool `json:"hasNewNotes"`
|
||
|
} `json:"data"`
|
||
|
}
|
||
|
|
||
|
type Dupe struct {
|
||
|
Id int `json:"id,string"`
|
||
|
Url string `json:"url"`
|
||
|
Title string `json:"title"`
|
||
|
User User `json:"user"`
|
||
|
CreatedAt time.Time `json:"createdAt"`
|
||
|
Sats int `json:"sats"`
|
||
|
NComments int `json:"ncomments"`
|
||
|
}
|
||
|
|
||
|
type DupesResponse struct {
|
||
|
Errors []GraphQLError `json:"errors"`
|
||
|
Data struct {
|
||
|
Dupes []Dupe `json:"dupes"`
|
||
|
} `json:"data"`
|
||
|
}
|
||
|
|
||
|
type DupesError struct {
|
||
|
Url string
|
||
|
Dupes []Dupe
|
||
|
}
|
||
|
|
||
|
func (e *DupesError) Error() string {
|
||
|
return fmt.Sprintf("found %d dupes for %s", len(e.Dupes), e.Url)
|
||
|
}
|