forked from davidsteinsland/ynab-go
/
payees.go
47 lines (39 loc) · 1.04 KB
/
payees.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
package ynab
type PayeesService service
type PayeesResponse struct {
Data PayeesWrapper `json:"data"`
}
type PayeesWrapper struct {
Payees []Payee `json:"payees"`
}
type PayeeResponse struct {
Data PayeeWrapper `json:"data"`
}
type PayeeWrapper struct {
Payee Payee `json:"payee"`
}
type Payee struct {
Id string `json:"id"`
Name string `json:"name"`
TransferAccountId *string `json:"transfer_account_id"`
}
/*
https://api.youneedabudget.com/v1#/Payees/getPayees
*/
func (ps *PayeesService) List(budgetId string) ([]Payee, error) {
var response PayeesResponse
if err := service(*ps).do("GET", "budgets/" + budgetId + "/payees", nil, &response); err != nil {
return nil, err
}
return response.Data.Payees, nil
}
/*
https://api.youneedabudget.com/v1#/Payees/getPayeeById
*/
func (ps *PayeesService) Get(budgetId string, payeeId string) (Payee, error) {
var response PayeeResponse
if err := service(*ps).do("GET", "budgets/" + budgetId + "/payees/" + payeeId, nil, &response); err != nil {
return Payee{}, err
}
return response.Data.Payee, nil
}