aboutsummaryrefslogtreecommitdiff
path: root/user.go
diff options
context:
space:
mode:
authorrtz12 <koenig@fagott.pw>2016-11-13 02:46:22 (UTC)
committerrtz12 <koenig@fagott.pw>2016-11-13 02:46:22 (UTC)
commit1e92d1fd37d2fa2dd99e68082e224b8ed7d634fb (patch)
tree0fe88b192cab768247830fe4413cec5740a81d71 /user.go
parent71e3b22bcc79168f0bed6e2f6b7d3e34a3b641d4 (diff)
Userspezifische Anilist-API und Koppelung implementiert
Diffstat (limited to 'user.go')
-rw-r--r--user.go45
1 files changed, 45 insertions, 0 deletions
diff --git a/user.go b/user.go
index 31ec560..cea3420 100644
--- a/user.go
+++ b/user.go
@@ -3,6 +3,8 @@ package charakterin
3import ( 3import (
4 "database/sql" 4 "database/sql"
5 "time" 5 "time"
6
7 "fagott.pw/goanilist"
6) 8)
7 9
8// Ein User ist ein ganz toller Benutzer. 10// Ein User ist ein ganz toller Benutzer.
@@ -15,6 +17,9 @@ type User struct {
15 LastActivity *time.Time 17 LastActivity *time.Time
16 IsActive bool 18 IsActive bool
17 Agent string 19 Agent string
20
21 AnilistClient *goanilist.Client
22 externalServices []ExternalService
18} 23}
19 24
20// GetName gibt den Anzeigenamen oder wenn dieser nicht gesetzt ist den Benutzernamen zurück. 25// GetName gibt den Anzeigenamen oder wenn dieser nicht gesetzt ist den Benutzernamen zurück.
@@ -24,3 +29,43 @@ func (u *User) GetName() string {
24 } 29 }
25 return u.Name 30 return u.Name
26} 31}
32
33func (u *User) HasExternalServices() bool {
34 return u.AnilistClient.IsCoupled
35}
36
37func (u *User) ExternalServices() []ExternalService {
38 if u.externalServices != nil {
39 return u.externalServices
40 }
41 ss := []ExternalService{}
42 if u.AnilistClient != nil {
43 s := ExternalService{
44 Name: "Anilist",
45 IsEnabled: u.AnilistClient.IsCoupled,
46 AuthType: "copy-paste",
47 AuthorizeURL: u.AnilistClient.AuthorizeURL(),
48 CoupleURL: "/settings/api/Anilist/couple",
49 }
50 if u.AnilistClient.IsCoupled {
51 user, err := u.AnilistClient.User()
52 if err != nil {
53 s.UserName = err.Error()
54 } else {
55 s.UserName = user.DisplayName
56 }
57 }
58 ss = append(ss, s)
59 }
60 u.externalServices = ss
61 return ss
62}
63
64type ExternalService struct {
65 Name string
66 IsEnabled bool
67 AuthType string
68 AuthorizeURL string
69 CoupleURL string
70 UserName string
71}