File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11package model
22
3- import "database/sql"
3+ import (
4+ "database/sql"
5+ "database/sql/driver"
6+ "errors"
7+ "fmt"
8+ )
49
510// User of the application; can be Requester or Workers
611type User struct {
@@ -51,6 +56,34 @@ type File struct {
5156// Role represents the position of a app User
5257type Role string
5358
59+ // Value returns the string value of the Role
60+ func (r Role ) Value () (driver.Value , error ) {
61+ // TODO: role validation (@dpordomingo)
62+ return string (r ), nil
63+ }
64+
65+ // Scan sets the Role with the passed string
66+ func (r * Role ) Scan (value interface {}) error {
67+ // TODO: role validation (@dpordomingo)
68+ if value == nil {
69+ * r = Role (Worker )
70+ return nil
71+ }
72+
73+ var bv driver.Value
74+ var err error
75+ if bv , err = driver .String .ConvertValue (value ); err == nil {
76+ if v , ok := bv .([]byte ); ok {
77+ * r = Role (v )
78+ return nil
79+ }
80+
81+ err = fmt .Errorf ("%#v can not be asserted as a string" , bv )
82+ }
83+
84+ return errors .New ("failed to scan Role; " + err .Error ())
85+ }
86+
5487const (
5588 // Requester is the role of a user that can review assignments, users, stats of experiments...
5689 Requester Role = "requester"
You can’t perform that action at this time.
0 commit comments