Compare commits

..

No commits in common. "develop" and "v0.6.1" have entirely different histories.

4 changed files with 13 additions and 120 deletions

View File

@ -23,21 +23,14 @@ func NewClient(options ...func(*Client)) *Client {
}
// set defaults
var ok bool
if c.BaseUrl == "" {
c.BaseUrl, ok = os.LookupEnv("SN_BASE_URL")
if !ok {
c.BaseUrl = "https://stacker.news"
}
c.BaseUrl = "https://stacker.news"
}
if c.ApiKey == "" {
c.ApiKey = os.Getenv("SN_API_KEY")
}
if c.MediaUrl == "" {
c.MediaUrl, ok = os.LookupEnv("SN_MEDIA_URL")
if !ok {
c.MediaUrl = "https://m.stacker.news"
}
c.MediaUrl = "https://m.stacker.news"
}
c.ApiUrl = fmt.Sprintf("%s/api/graphql", c.BaseUrl)

View File

@ -226,17 +226,7 @@ func (c *Client) PostDiscussion(title string, text string, sub string) (int, err
Query: `
mutation upsertDiscussion($title: String!, $text: String, $sub: String) {
upsertDiscussion(title: $title, text: $text, sub: $sub) {
result {
id
}
invoice {
id
hash
bolt11
satsRequested
expiresAt
}
paymentMethod
result { id }
}
}`,
Variables: map[string]interface{}{
@ -264,11 +254,6 @@ func (c *Client) PostDiscussion(title string, text string, sub string) (int, err
return -1, err
}
inv := respBody.Data.UpsertDiscussion.Invoice
if inv.Id != 0 {
return -1, fmt.Errorf("mutation requires %d sats as payment", inv.SatsRequested)
}
return respBody.Data.UpsertDiscussion.Result.Id, nil
}
@ -277,17 +262,7 @@ func (c *Client) PostLink(url string, title string, text string, sub string) (in
Query: `
mutation upsertLink($url: String!, $title: String!, $text: String, $sub: String!) {
upsertLink(url: $url, title: $title, text: $text, sub: $sub) {
result {
id
}
invoice {
id
hash
bolt11
satsRequested
expiresAt
}
paymentMethod
result { id }
}
}`,
Variables: map[string]interface{}{
@ -316,11 +291,6 @@ func (c *Client) PostLink(url string, title string, text string, sub string) (in
return -1, err
}
inv := respBody.Data.UpsertLink.Invoice
if inv.Id != 0 {
return -1, fmt.Errorf("mutation requires %d sats as payment", inv.SatsRequested)
}
return respBody.Data.UpsertLink.Result.Id, nil
}
@ -329,17 +299,7 @@ func (c *Client) CreateComment(parentId int, text string) (int, error) {
Query: `
mutation upsertComment($parentId: ID!, $text: String!) {
upsertComment(parentId: $parentId, text: $text) {
result {
id
}
invoice {
id
hash
bolt11
satsRequested
expiresAt
}
paymentMethod
result { id }
}
}`,
Variables: map[string]interface{}{
@ -366,11 +326,6 @@ func (c *Client) CreateComment(parentId int, text string) (int, error) {
return -1, err
}
inv := respBody.Data.UpsertComment.Invoice
if inv.Id != 0 {
return -1, fmt.Errorf("mutation requires %d sats as payment", inv.SatsRequested)
}
return respBody.Data.UpsertComment.Result.Id, nil
}

View File

@ -26,18 +26,12 @@ type GetSignedPOSTResponse struct {
func (c *Client) UploadImage(img *image.RGBA) (string, error) {
var (
b = img.Bounds()
width = b.Dx()
height = b.Dy()
width = b.Max.X
height = b.Max.Y
size = width * height
type_ = "image/png"
size int
)
var imgBuf bytes.Buffer
if err := png.Encode(&imgBuf, img); err != nil {
return "", err
}
size = imgBuf.Len()
// get signed URL for S3 upload
body := GqlBody{
Query: `
@ -105,7 +99,9 @@ func (c *Client) UploadImage(img *image.RGBA) (string, error) {
if fw, err = w.CreateFormFile("file", "image.png"); err != nil {
return "", err
}
fw.Write(imgBuf.Bytes())
if err = png.Encode(fw, img); err != nil {
return "", err
}
if err = w.Close(); err != nil {
return "", err

55
user.go
View File

@ -1,57 +1,6 @@
package sn
import (
"encoding/json"
"fmt"
)
type User struct {
Id int `json:"id,string"`
Name string `json:"name"`
Privates UserPrivates `json:"privates"`
}
type UserPrivates struct {
Sats int `json:"sats"`
}
type MeResponse struct {
Errors []GqlError `json:"errors"`
Data struct {
Me User `json:"me"`
} `json:"data"`
}
func (c *Client) Me() (*User, error) {
body := GqlBody{
Query: `
query me {
me {
id
name
privates {
sats
}
}
}`,
}
resp, err := c.callApi(body)
if err != nil {
return nil, err
}
defer resp.Body.Close()
var respBody MeResponse
err = json.NewDecoder(resp.Body).Decode(&respBody)
if err != nil {
err = fmt.Errorf("error decoding me: %w", err)
return nil, err
}
err = c.checkForErrors(respBody.Errors)
if err != nil {
return nil, err
}
return &respBody.Data.Me, nil
Id int `json:"id,string"`
Name string `json:"name"`
}