Initial cloud-services repo - gateway service + pkg modules

This commit is contained in:
Chris Rai
2026-01-30 23:14:52 -05:00
commit fbb820d7b3
1037 changed files with 171318 additions and 0 deletions

52
pkg/common/file_key.go Normal file
View File

@@ -0,0 +1,52 @@
package common
import (
b64 "encoding/base64"
"fiskerinc.com/modules/common/dbbasemodel"
)
type FileKey struct {
FileID string `pg:",pk" validate:"required,len=16,hexadecimal"`
Key []byte `pg:",notnull" validate:"required"`
Auth []byte `pg:",notnull" validate:"required"`
Nonce []byte `pg:",notnull" validate:"required"`
Error string `pg:"-"`
dbbasemodel.DBModelBase
}
type FileKeysRequest struct {
FileIDs []string `json:"file_ids" validate:"required,dive,len=16,hexadecimal"`
}
type FileKeyResponse struct {
FileID string `json:"file_id" redis:"file_id" validate:"required,len=16,hexadecimal"`
Key string `json:"key,omitempty" redis:"key,omitempty" validate:"required"`
Auth string `json:"auth,omitempty" redis:"auth,omitempty" validate:"required"`
Nonce string `json:"nonce,omitempty" redis:"nonce,omitempty" validate:"required"`
Error string `json:"error,omitempty" redis:"error,omitempty"`
}
// Turns the FileKey into a FileKeyResponse
func (fkr *FileKeyResponse) Apply(key *FileKey) {
fkr.FileID = key.FileID
fkr.Key = b64.StdEncoding.EncodeToString(key.Key)
fkr.Auth = b64.StdEncoding.EncodeToString(key.Auth)
fkr.Nonce = b64.StdEncoding.EncodeToString(key.Nonce)
}
// Turns a FileKeyResponse into a file key
func (key *FileKey) Apply(fkr *FileKeyResponse) (err error) {
key.FileID = fkr.FileID
key.Error = fkr.Error
key.Key, err = b64.StdEncoding.DecodeString(fkr.Key)
if err != nil {
return err
}
key.Auth, err = b64.StdEncoding.DecodeString(fkr.Auth)
if err != nil {
return err
}
key.Nonce, err = b64.StdEncoding.DecodeString(fkr.Nonce)
return err
}