package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)
const BaseURI = "https://api.hyper3d.com/api"
type CommonError struct {
Error *string `json:"error,omitempty"`
}
type ApiTaskStatusPair struct {
Uuid string `json:"uuid"`
Status string `json:"status"`
}
type ApiStatusResponse struct {
CommonError
Jobs []ApiTaskStatusPair `json:"jobs"`
}
func CheckStatus(token string, subscriptionKey string) (*ApiStatusResponse, error) {
payload := map[string]string{"subscription_key": subscriptionKey}
jsonData, err := json.Marshal(payload)
if err != nil {
return nil, err
}
req, err := http.NewRequest("POST", fmt.Sprintf("%s/v2/status", BaseURI), bytes.NewBuffer(jsonData))
if err != nil {
return nil, err
}
req.Header.Set("Authorization", "Bearer "+token)
req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil {
return nil, err
}
defer resp.Body.Close()
var responseData ApiStatusResponse
err = json.NewDecoder(resp.Body).Decode(&responseData)
if err != nil {
return nil, err
}
if responseData.Error != nil {
return nil, fmt.Errorf("error: %s", *responseData.Error)
}
return &responseData, nil
}
func main() {
// Replace with your actual API key
token := "your api key"
// Replace with your subscription key
resp, _ := CheckStatus(token, "your subscription key for a task")
fmt.Println(resp)
}