github.com/0chain/gosdk@v1.17.11/zboxapi/response.go (about) 1 package zboxapi 2 3 import ( 4 "encoding/base64" 5 "encoding/json" 6 "errors" 7 ) 8 9 var ( 10 ErrInvalidJsonResponse = errors.New("zbox-srv: invalid json response") 11 ) 12 13 type ErrorResponse struct { 14 Error json.RawMessage `json:"error"` 15 } 16 17 type CsrfTokenResponse struct { 18 Token string `json:"csrf_token"` 19 } 20 21 type JwtTokenResponse struct { 22 Token string `json:"jwt_token"` 23 } 24 25 type FreeStorageResponse struct { 26 Data string `json:"marker"` 27 FundingID int `json:"funding_id"` 28 } 29 30 type MarkerData struct { 31 Marker string `json:"marker"` 32 RecipientPublicKey string `json:"recipient_public_key"` 33 } 34 35 func (fs *FreeStorageResponse) ToMarker() (*FreeMarker, error) { 36 37 buf, err := base64.StdEncoding.DecodeString(fs.Data) 38 39 if err != nil { 40 return nil, err 41 } 42 43 data := &MarkerData{} 44 err = json.Unmarshal(buf, &data) 45 if err != nil { 46 return nil, err 47 } 48 49 buf, err = base64.StdEncoding.DecodeString(data.Marker) 50 if err != nil { 51 return nil, err 52 } 53 54 fm := &FreeMarker{} 55 56 err = json.Unmarshal(buf, fm) 57 if err != nil { 58 return nil, err 59 } 60 61 return fm, nil 62 } 63 64 type FreeMarker struct { 65 Assigner string `json:"assigner"` 66 Recipient string `json:"recipient"` 67 FreeTokens float64 `json:"free_tokens"` 68 Nonce int64 `json:"nonce"` 69 Signature string `json:"signature"` 70 } 71 72 type JsonResult[T any] struct { 73 Message string `json:"message"` 74 Error string `json:"error"` 75 Data []T `json:"data"` 76 } 77 78 type SharedInfo struct { 79 AuthTicket string `json:"auth_ticket"` 80 Message string `json:"message"` 81 ShareInfoType string `json:"share_info_type"` 82 Link string `json:"link"` 83 } 84 85 type SharedInfoSent struct { 86 AuthTicket string `json:"auth_ticket"` 87 Message string `json:"message"` 88 ShareInfoType string `json:"share_info_type"` 89 Receiver string `json:"receiver_client_id"` 90 Link string `json:"link"` 91 ReceiverName string `json:"receiver_name"` 92 CreatedAt string `json:"created_at"` 93 UpdatedAt string `json:"updated_at"` 94 } 95 96 type SharedInfoReceived struct { 97 AuthTicket string `json:"auth_ticket"` 98 Message string `json:"message"` 99 ShareInfoType string `json:"share_info_type"` 100 ClientID string `json:"client_id"` 101 Receiver string `json:"receiver_client_id"` 102 LookupHash string `json:"lookup_hash"` 103 SenderName string `json:"sender_name"` 104 CreatedAt string `json:"created_at"` 105 UpdatedAt string `json:"updated_at"` 106 }