Passed
Push — main ( f6597a...58b626 )
by Yume
01:31 queued 12s
created

domain/oauth.go   A

Size/Duplication

Total Lines 45
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 35
dl 0
loc 45
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A domain.*GithubLogin.ToUser 0 9 1
A domain.*DiscordLogin.ToUser 0 9 1
1
package domain
2
3
import (
4
	"strconv"
5
)
6
7
type GithubLogin struct {
8
	Login      string `json:"login"`
9
	NodeID     string `json:"node_id"`
10
	AvatarURL  string `json:"avatar_url"`
11
	GravatarID string `json:"gravatar_id"`
12
	URL        string `json:"url"`
13
	Bio        string `json:"bio"`
14
	Email      string `json:"email"`
15
	ID         int    `json:"id"`
16
}
17
18
func (g *GithubLogin) ToUser() User {
19
	return User{
20
		Username:      g.Login,
21
		Email:         g.Email,
22
		Permission:    PermissionUser,
23
		Avatar:        g.AvatarURL,
24
		Oauth:         true,
25
		OauthProvider: "github",
26
		OauthID:       strconv.Itoa(g.ID),
27
	}
28
}
29
30
type DiscordLogin struct {
31
	ID       string `json:"id"`
32
	Username string `json:"username"`
33
	Avatar   string `json:"avatar"`
34
	Email    string `json:"email"`
35
}
36
37
func (d *DiscordLogin) ToUser() User {
38
	return User{
39
		Username:      d.Username,
40
		Email:         d.Email,
41
		Permission:    PermissionUser,
42
		Avatar:        "https://cdn.discordapp.com/avatars/" + d.ID + "/" + d.Avatar + ".png",
43
		Oauth:         true,
44
		OauthProvider: "discord",
45
		OauthID:       d.ID,
46
	}
47
}
48