Passed
Push — main ( 61afed...15fdb1 )
by Yume
01:08
created

models.*Access.Set   A

Complexity

Conditions 1

Size

Total Lines 4
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 4
nop 3
dl 0
loc 4
rs 10
c 0
b 0
f 0
1
package models
2
3
import (
4
	"gorm.io/gorm"
5
)
6
7
// Access structure
8
type Access struct {
9
	gorm.Model
10
	UserID     uint `json:"user_id" example:"1"`
11
	User       User
12
	DeckID     uint `json:"deck_id" example:"1"`
13
	Deck       Deck
14
	Permission AccessPermission `json:"permission" example:"0"` // 0: None - 1: Student - 2: Editor - 3: Owner
15
}
16
17
// AccessPermission enum type
18
type AccessPermission int64
19
20
const (
21
	AccessNone AccessPermission = iota
22
	AccessStudent
23
	AccessEditor
24
	AccessOwner
25
)
26
27
// ToString returns AccessPermission value as a string
28
func (s AccessPermission) ToString() string {
29
	switch s {
30
	case AccessStudent:
31
		return "Access Student"
32
	case AccessEditor:
33
		return "Access Editor"
34
	case AccessOwner:
35
		return "Access Owner"
36
	default:
37
		return "Unknown"
38
	}
39
}
40
41
// Set Access values
42
func (access *Access) Set(userID, deckID uint, permission AccessPermission) {
43
	access.UserID = userID
44
	access.DeckID = deckID
45
	access.Permission = permission
46
}
47
48
// TODO add setter for AccessPermission
49