-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexpenses.go
127 lines (102 loc) · 3.38 KB
/
expenses.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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
package casheerapi
const ExpenseType = "expense"
type ExpenseData struct {
ResourceID
Attributes ExpenseAttributes `json:"attributes"`
Links ExpenseLinks `json:"links"`
Relationships ExpenseRelationships `json:"relationships"`
}
type ExpenseListItemData struct {
ResourceID
Attributes ExpenseAttributes `json:"attributes"`
Links ExpenseListItemLinks `json:"links"`
}
type ExpenseAttributes struct {
Value MonetaryValueAttributes `json:"value"`
Name string `json:"name"`
Description string `json:"description"`
PaymentMethod string `json:"payment_method"`
Timestamps
}
type ExpenseLinks struct {
Self string `json:"self"`
}
type ExpenseListItemLinks struct {
Self string `json:"self"`
}
type CreateExpenseRequest struct {
Data CreateExpenseData `json:"data"`
}
type CreateExpenseData struct {
Type string `json:"type"`
Attributes CreateExpenseAttributes `json:"attributes"`
}
type CreateExpenseAttributes struct {
Value MonetaryValueCreationAttributes `json:"value"`
Name string `json:"name"`
Description *string `json:"description,omitempty"`
PaymentMethod *string `json:"payment_method,omitempty"`
}
type CreateExpenseResponse struct {
Data ExpenseData `json:"data"`
}
type UpdateExpenseRequest struct {
Data UpdateExpenseData `json:"data" `
}
type UpdateExpenseData struct {
Type string `json:"type"`
Attributes UpdateExpenseAttributes `json:"attributes"`
}
type UpdateExpenseAttributes struct {
Value MonetaryMutableValueAttributes `json:"value"`
Name *string `json:"name,omitempty"`
Description *string `json:"description,omitempty"`
PaymentMethod *string `json:"payment_method,omitempty"`
}
type UpdateExpenseResponse struct {
Data ExpenseData `json:"data"`
}
type DeleteExpenseRequest struct {
}
type DeleteExpenseResponse struct {
Data ExpenseData `json:"data"`
}
type ListExpenseParams struct {
AmountGt *int `json:"amount[gt],omitempty"`
AmountLt *int `json:"amount[lt],omitempty"`
Currency *string `json:"currency,omitempty"`
Name *string `json:"name,omitempty"`
Description *string `json:"description,omitempty"`
PaymentMethod *string `json:"payment_method,omitempty"`
}
type ListExpenseItemLinks struct {
Self string `json:"self"`
}
type ListExpenseLinks struct {
Self string `json:"self"`
Home HomeLink `json:"home"`
}
type ExpenseRelationships struct {
Entries ExpenseEntryRelationship `json:"entries"`
}
type ExpenseEntryRelationship struct {
Links ExpenseEntryRelationshipLinks `json:"links"`
}
type ExpenseEntryRelationshipLinks struct {
// Since in this case technically the relationship link is the same as the
// resource collection link, I've decided to not provide a relationship
// link at all in order to avoid confusion and be compliant to json:api.
//
// The related link simply points to the related expense, and not to a link
// resource.
Related string `json:"related"`
}
type ListExpenseResponse struct {
Data []ExpenseListItemData `json:"data"`
Links ListExpenseLinks `json:"links"`
}
type GetExpenseRequest struct {
}
type GetExpenseResponse struct {
Data ExpenseData `json:"data"`
}