61 lines
1.2 KiB
Go
61 lines
1.2 KiB
Go
package main
|
|
|
|
import (
|
|
"bytes"
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
"strconv"
|
|
|
|
"deadbeef.codes/steven/go-itg/itglue"
|
|
"github.com/ChimeraCoder/gojson"
|
|
)
|
|
|
|
var itg *itglue.ITGAPI
|
|
|
|
func init() {
|
|
apiKey := os.Getenv("itgapikey")
|
|
if apiKey == "" {
|
|
log.Fatalf("API key is not set")
|
|
}
|
|
itg = itglue.NewITGAPI(apiKey)
|
|
}
|
|
|
|
func main() {
|
|
|
|
fats, err := itg.GetFlexibleAssetTypes()
|
|
if err != nil {
|
|
log.Fatalf("could get get FATs: %s", err)
|
|
}
|
|
|
|
for _, fat := range fats.Data {
|
|
fmt.Printf("%s - %s\n", fat.FlexibleAssetTypeData.ID, fat.FlexibleAssetTypeData.Attributes.Name)
|
|
id, err := strconv.Atoi(fat.ID)
|
|
if err != nil {
|
|
log.Fatalf("could not convert %s to integer: %s", fat.ID, err)
|
|
}
|
|
|
|
fa, err := itg.GetFlexibleAssetsJSON(id)
|
|
if err != nil {
|
|
log.Fatalf("could get flexible asset with type ID %d: %s", id, err)
|
|
}
|
|
|
|
name := &fat.FlexibleAssetTypeData.Attributes.Name
|
|
pkg := "itglue"
|
|
subStruct := false // try changing to true?
|
|
tagList := make([]string, 0)
|
|
tagList = append(tagList, "json")
|
|
var convertFloats bool
|
|
var parser gojson.Parser
|
|
parser = gojson.ParseJson
|
|
convertFloats = true
|
|
|
|
input := bytes.NewReader(fa)
|
|
|
|
output, err := gojson.Generate(input, parser, *name, pkg, tagList, subStruct, convertFloats)
|
|
|
|
fmt.Print(string(output))
|
|
|
|
}
|
|
}
|