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