-
Notifications
You must be signed in to change notification settings - Fork 0
/
collect.go
61 lines (50 loc) · 1.29 KB
/
collect.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
package bankid
import (
"bytes"
"context"
"encoding/json"
"fmt"
"net/http"
)
type CollectRequest struct {
// The orderRef returned from auth or sign.
OrderRef string `json:"orderRef"`
}
type CollectResponse struct {
OrderRef string `json:"orderRef"`
Status string `json:"status"`
HintCode string `json:"hintCode"`
CompletionData struct {
User struct {
PersonalNumber string `json:"personalNumber"`
Name string `json:"name"`
GivenName string `json:"givenName"`
Surname string `json:"surname"`
} `json:"user"`
Device struct {
IPAddress string `json:"ipAddress"`
} `json:"device"`
Cert struct {
NotBefore string `json:"notBefore"`
NotAfter string `json:"notAfter"`
} `json:"cert"`
Signature string `json:"signature"`
OcspResponse string `json:"ocspResponse"`
} `json:"completionData"`
}
func (c *Client) Collect(ctx context.Context, params *CollectRequest) (*CollectResponse, error) {
url := fmt.Sprintf("%s/collect", c.BaseUrl)
j, err := json.Marshal(params)
if err != nil {
return nil, err
}
req, err := http.NewRequest("POST", url, bytes.NewBuffer(j))
if err != nil {
return nil, err
}
res := CollectResponse{}
if err := c.sendReq(ctx, req, &res); err != nil {
return nil, err
}
return &res, nil
}