ajout app

This commit is contained in:
2024-04-17 20:22:30 +02:00
parent cc017cfc5e
commit f9d05a2fd3
8025 changed files with 729805 additions and 0 deletions

View File

@ -0,0 +1,28 @@
package model
const (
FileTypeFile = "file"
FileTypeFolder = "folder"
)
type File interface {
GetID() string
GetWorkspaceID() string
GetName() string
GetType() string
GetParentID() *string
GetCreateTime() string
GetUpdateTime() *string
GetSnapshots() []Snapshot
GetUserPermissions() []CoreUserPermission
GetGroupPermissions() []CoreGroupPermission
GetText() *string
SetID(string)
SetParentID(*string)
SetWorkspaceID(string)
SetType(string)
SetName(string)
SetText(*string)
SetCreateTime(string)
SetUpdateTime(*string)
}

View File

@ -0,0 +1,14 @@
package model
type Group interface {
GetID() string
GetName() string
GetOrganizationID() string
GetUserPermissions() []CoreUserPermission
GetGroupPermissions() []CoreGroupPermission
GetUsers() []string
GetCreateTime() string
GetUpdateTime() *string
SetName(string)
SetUpdateTime(*string)
}

View File

@ -0,0 +1,19 @@
package model
const (
InvitationStatusPending = "pending"
InvitationStatusAccepted = "accepted"
InvitationStatusDeclined = "declined"
)
type Invitation interface {
GetID() string
GetOrganizationID() string
GetOwnerID() string
GetEmail() string
GetStatus() string
GetCreateTime() string
GetUpdateTime() *string
SetStatus(string)
SetUpdateTime(*string)
}

View File

@ -0,0 +1,13 @@
package model
type Organization interface {
GetID() string
GetName() string
GetUserPermissions() []CoreUserPermission
GetGroupPermissions() []CoreGroupPermission
GetUsers() []string
GetCreateTime() string
GetUpdateTime() *string
SetName(string)
SetUpdateTime(*string)
}

View File

@ -0,0 +1,58 @@
package model
const (
PermissionViewer = "viewer"
PermissionEditor = "editor"
PermissionOwner = "owner"
)
type CoreUserPermission interface {
GetUserID() string
GetValue() string
}
type CoreGroupPermission interface {
GetGroupID() string
GetValue() string
}
func GteViewerPermission(permission string) bool {
return permission == PermissionViewer || permission == PermissionEditor || permission == PermissionOwner
}
func GteEditorPermission(permission string) bool {
return permission == PermissionEditor || permission == PermissionOwner
}
func GteOwnerPermission(permission string) bool {
return permission == PermissionOwner
}
func IsEquivalentPermission(permission string, otherPermission string) bool {
if permission == otherPermission {
return true
}
if otherPermission == PermissionViewer && GteViewerPermission(permission) {
return true
}
if otherPermission == PermissionEditor && GteEditorPermission(permission) {
return true
}
if otherPermission == PermissionOwner && GteOwnerPermission(permission) {
return true
}
return false
}
func GetPermissionWeight(permission string) int {
if permission == PermissionViewer {
return 1
}
if permission == PermissionEditor {
return 2
}
if permission == PermissionOwner {
return 3
}
return 0
}

View File

@ -0,0 +1,49 @@
package model
const (
SnapshotStatusNew = "new"
SnapshotStatusProcessing = "processing"
SnapshotStatusReady = "ready"
SnapshotStatusError = "error"
)
type Snapshot interface {
GetID() string
GetVersion() int64
GetOriginal() *S3Object
GetPreview() *S3Object
GetText() *S3Object
GetThumbnail() *Thumbnail
HasOriginal() bool
HasPreview() bool
HasText() bool
HasThumbnail() bool
GetStatus() string
GetCreateTime() string
GetUpdateTime() *string
SetID(string)
SetVersion(int64)
SetOriginal(*S3Object)
SetPreview(*S3Object)
SetText(*S3Object)
SetThumbnail(*Thumbnail)
SetStatus(string)
}
type S3Object struct {
Bucket string `json:"bucket"`
Key string `json:"key"`
Size int64 `json:"size"`
Image *ImageProps `json:"image,omitempty"`
}
type ImageProps struct {
Width int `json:"width"`
Height int `json:"height"`
}
type Thumbnail struct {
Base64 string `json:"base64"`
Width int `json:"width"`
Height int `json:"height"`
}

View File

@ -0,0 +1,12 @@
package model
type User interface {
GetID() string
GetFullName() string
GetUsername() string
GetEmail() string
GetPicture() *string
GetIsEmailConfirmed() bool
GetCreateTime() string
GetUpdateTime() *string
}

View File

@ -0,0 +1,16 @@
package model
type Workspace interface {
GetID() string
GetName() string
GetStorageCapacity() int64
GetRootID() string
GetOrganizationID() string
GetUserPermissions() []CoreUserPermission
GetGroupPermissions() []CoreGroupPermission
GetBucket() string
GetCreateTime() string
GetUpdateTime() *string
SetName(string)
SetUpdateTime(*string)
}