forked from McKael/madon
-
Notifications
You must be signed in to change notification settings - Fork 0
/
report.go
48 lines (40 loc) · 1.17 KB
/
report.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
/*
Copyright 2017-2018 Mikael Berthe
Licensed under the MIT license. Please see the LICENSE file is this directory.
*/
package madon
import (
"fmt"
"strconv"
"github.com/sendgrid/rest"
)
// GetReports returns the current user's reports
// (I don't know if the limit options are used by the API server.)
func (mc *Client) GetReports(lopt *LimitParams) ([]Report, error) {
var reports []Report
if err := mc.apiCall("v1/reports", rest.Get, nil, lopt, nil, &reports); err != nil {
return nil, err
}
return reports, nil
}
// ReportUser reports the user account
func (mc *Client) ReportUser(accountID int64, statusIDs []int64, comment string) (*Report, error) {
if accountID < 1 || comment == "" || len(statusIDs) < 1 {
return nil, ErrInvalidParameter
}
params := make(apiCallParams)
params["account_id"] = strconv.FormatInt(accountID, 10)
params["comment"] = comment
for i, id := range statusIDs {
if id < 1 {
return nil, ErrInvalidID
}
qID := fmt.Sprintf("[%d]status_ids", i)
params[qID] = strconv.FormatInt(id, 10)
}
var report Report
if err := mc.apiCall("v1/reports", rest.Post, params, nil, nil, &report); err != nil {
return nil, err
}
return &report, nil
}