Total Lines | 47 |
Duplicated Lines | 0 % |
Changes | 0 |
1 | package models |
||
2 | |||
3 | import ( |
||
4 | "github.com/memnix/memnixrest/pkg/utils" |
||
5 | "gorm.io/gorm" |
||
6 | ) |
||
7 | |||
8 | // Access structure |
||
9 | type Access struct { |
||
10 | gorm.Model `swaggerignore:"true"` |
||
11 | UserID uint `json:"user_id" example:"1"` |
||
12 | User User `swaggerignore:"true"` |
||
13 | DeckID uint `json:"deck_id" example:"1"` |
||
14 | Deck Deck `swaggerignore:"true"` |
||
15 | Permission AccessPermission `json:"permission" example:"0"` // 0: None - 1: Student - 2: Editor - 3: Owner |
||
16 | ToggleToday bool `json:"today" gorm:"default:true"` |
||
17 | } |
||
18 | |||
19 | // AccessPermission enum type |
||
20 | type AccessPermission uint8 |
||
21 | |||
22 | const ( |
||
23 | AccessNone AccessPermission = iota |
||
24 | AccessStudent |
||
25 | AccessEditor |
||
26 | AccessOwner |
||
27 | ) |
||
28 | |||
29 | // ToString returns AccessPermission value as a string |
||
30 | func (s AccessPermission) ToString() string { |
||
31 | switch s { |
||
32 | case AccessStudent: |
||
33 | return "Access Student" |
||
34 | case AccessEditor: |
||
35 | return "Access Editor" |
||
36 | case AccessOwner: |
||
37 | return "Access Owner" |
||
38 | default: |
||
39 | return utils.UNKNOWN |
||
40 | } |
||
41 | } |
||
42 | |||
43 | // Set Access values |
||
44 | func (access *Access) Set(userID, deckID uint, permission AccessPermission) { |
||
45 | access.UserID = userID |
||
46 | access.DeckID = deckID |
||
47 | access.Permission = permission |
||
48 | } |
||
51 |