generated from oklookat/gostarter
-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.go
54 lines (44 loc) · 1.26 KB
/
main.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
package govkm
import (
"context"
"errors"
"github.com/oklookat/govkm/schema"
"github.com/oklookat/vantuz"
)
const (
_errPrefix = "govkm"
)
var (
ErrLikedTracksPlaylistNotFound = errors.New(_errPrefix + ": liked tracks playlist not found")
)
// Получить Client для запросов к API, и ID текущего пользователя.
//
// Если токен неверный,
// в error будет завернут schema.ResponseError
// (см. schema.ResponseError.IsUnauthorized).
func New(accessToken string) (*Client, error) {
httpCl := vantuz.C().SetAuthorization("Bearer " + accessToken)
cl := &Client{
Http: httpCl,
}
cl.SetUserAgent("okhttp/5.0.0-alpha.2")
cl.Http.SetGlobalHeader("X-App-Id", "android")
cl.Http.SetGlobalHeader("X-Client-Version", "10477")
usr, err := cl.UserInfo(context.Background())
if err != nil {
return nil, err
}
cl.CurrentUserId = usr.Data.User.APIID
return cl, err
}
// Клиент для запросов к API.
type Client struct {
// ID текущего пользователя.
CurrentUserId schema.ID
// Отправляет запросы.
Http *vantuz.Client
}
// Установить user agent для запросов.
func (c *Client) SetUserAgent(val string) {
c.Http.SetUserAgent(val)
}