forked from danilopolani/gocialite
/
asana.go
46 lines (36 loc) · 1.27 KB
/
asana.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
package drivers
import (
"net/http"
"fmt"
"github.com/redaLaanait/gocialite/v2/structs"
"golang.org/x/oauth2"
)
const asanaDriverName = "asana"
func init() {
registerDriver(asanaDriverName, AsanaDefaultScopes, AsanaUserFn, AsanaEndpoint, AsanaAPIMap, AsanaUserMap)
}
// DailyMotionEndpoint is the oAuth endpoint
var AsanaEndpoint = oauth2.Endpoint{
AuthURL: "https://app.asana.com/-/oauth_authorize",
TokenURL: "https://app.asana.com/-/oauth_token",
}
// AsanaUserMap is the map to create the User struct
var AsanaUserMap = map[string]string{}
// AsanaAPIMap is the map for API endpoints
var AsanaAPIMap = map[string]string{
"endpoint": "https://app.asana.com/api/1.0",
"userEndpoint": "/users/me?opt_fields=id,name,email,photo",
}
// AsanaUserFn is a callback to parse additional fields for User
var AsanaUserFn = func(client *http.Client, u *structs.User) {
userData := u.Raw["data"].(map[string]interface{})
u.ID = fmt.Sprintf("%.0f", userData["id"].(float64))
u.Email = userData["email"].(string)
u.FullName = userData["name"].(string)
// Set avatar
if (userData["photo"] != nil) {
u.Avatar = userData["photo"].(map[string]interface{})["image_1024x1024"].(string)
}
}
// AsanaDefaultScopes contains the default scopes
var AsanaDefaultScopes = []string{}