Completed
Push — main ( c7f647...178139 )
by Yume
14s queued 13s
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
	"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
}
49
50
// TODO add setter for AccessPermission
51