snappy/dupes.go

48 lines
761 B
Go

package sn
import (
"encoding/json"
"fmt"
)
// Fetch dupes
func Dupes(url string) (*[]Dupe, error) {
body := GraphQLPayload{
Query: `
query Dupes($url: String!) {
dupes(url: $url) {
id
url
title
user {
name
}
createdAt
sats
ncomments
}
}`,
Variables: map[string]interface{}{
"url": url,
},
}
resp, err := MakeStackerNewsRequest(body)
if err != nil {
return nil, err
}
defer resp.Body.Close()
var respBody DupesResponse
err = json.NewDecoder(resp.Body).Decode(&respBody)
if err != nil {
err = fmt.Errorf("error decoding SN dupes: %w", err)
return nil, err
}
err = CheckForErrors(respBody.Errors)
if err != nil {
return nil, err
}
return &respBody.Data.Dupes, nil
}