Module project, commit, submission
All checks were successful
Build and Release / release (push) Successful in 1m15s
All checks were successful
Build and Release / release (push) Successful in 1m15s
This commit is contained in:
64
pkg/constants/project_member.go
Normal file
64
pkg/constants/project_member.go
Normal file
@@ -0,0 +1,64 @@
|
||||
package constants
|
||||
|
||||
type ProjectMemberRole int16
|
||||
|
||||
const (
|
||||
ProjectMemberRoleOwner ProjectMemberRole = 1
|
||||
ProjectMemberRoleEditor ProjectMemberRole = 2
|
||||
ProjectMemberRoleViewer ProjectMemberRole = 3
|
||||
)
|
||||
|
||||
func (r ProjectMemberRole) String() string {
|
||||
switch r {
|
||||
case ProjectMemberRoleOwner:
|
||||
return "OWNER"
|
||||
case ProjectMemberRoleEditor:
|
||||
return "EDITOR"
|
||||
case ProjectMemberRoleViewer:
|
||||
return "VIEWER"
|
||||
default:
|
||||
return "UNKNOWN"
|
||||
}
|
||||
}
|
||||
|
||||
func (r ProjectMemberRole) Int16() int16 {
|
||||
return int16(r)
|
||||
}
|
||||
|
||||
func ParseProjectMemberRole(v int16) ProjectMemberRole {
|
||||
switch v {
|
||||
case 1:
|
||||
return ProjectMemberRoleOwner
|
||||
case 2:
|
||||
return ProjectMemberRoleEditor
|
||||
case 3:
|
||||
return ProjectMemberRoleViewer
|
||||
default:
|
||||
return ProjectMemberRoleViewer
|
||||
}
|
||||
}
|
||||
|
||||
func ParseProjectMemberRoleText(v string) ProjectMemberRole {
|
||||
switch v {
|
||||
case "OWNER":
|
||||
return ProjectMemberRoleOwner
|
||||
case "EDITOR":
|
||||
return ProjectMemberRoleEditor
|
||||
case "VIEWER":
|
||||
return ProjectMemberRoleViewer
|
||||
default:
|
||||
return ProjectMemberRoleViewer
|
||||
}
|
||||
}
|
||||
|
||||
func (r ProjectMemberRole) CanWrite() bool {
|
||||
return r == ProjectMemberRoleOwner || r == ProjectMemberRoleEditor
|
||||
}
|
||||
|
||||
func (r ProjectMemberRole) CanRead() bool {
|
||||
return r == ProjectMemberRoleOwner || r == ProjectMemberRoleEditor || r == ProjectMemberRoleViewer
|
||||
}
|
||||
|
||||
func (r ProjectMemberRole) IsOwner() bool {
|
||||
return r == ProjectMemberRoleOwner
|
||||
}
|
||||
@@ -1,11 +1,20 @@
|
||||
package convert
|
||||
|
||||
import (
|
||||
"crypto/md5"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/jackc/pgx/v5/pgtype"
|
||||
)
|
||||
|
||||
func GenerateQueryKey(prefix string, params any) string {
|
||||
b, _ := json.Marshal(params)
|
||||
hash := fmt.Sprintf("%x", md5.Sum(b))
|
||||
return fmt.Sprintf("%s:query:%s", prefix, hash)
|
||||
}
|
||||
|
||||
func UUIDToString(v pgtype.UUID) string {
|
||||
if v.Valid {
|
||||
return v.String()
|
||||
@@ -75,6 +84,16 @@ func PtrToText(s *string) pgtype.Text {
|
||||
}
|
||||
}
|
||||
|
||||
func StringToText(s string) pgtype.Text {
|
||||
if s == "" {
|
||||
return pgtype.Text{Valid: false}
|
||||
}
|
||||
return pgtype.Text{
|
||||
String: s,
|
||||
Valid: true,
|
||||
}
|
||||
}
|
||||
|
||||
func TextToPtr(v pgtype.Text) *string {
|
||||
if !v.Valid {
|
||||
return nil
|
||||
|
||||
Reference in New Issue
Block a user