diff --git a/backend/cmd/server/main.go b/backend/cmd/server/main.go index 9b829f0..54474c7 100644 --- a/backend/cmd/server/main.go +++ b/backend/cmd/server/main.go @@ -8,7 +8,7 @@ import ( func main() { - err, config := config.LoadApplicationConfig() + err, _ := config.LoadApplicationConfig() if err != nil { log.Fatalln(err) diff --git a/backend/cmd/server/main_test.go b/backend/cmd/server/main_test.go index ad00cff..7ef862f 100644 --- a/backend/cmd/server/main_test.go +++ b/backend/cmd/server/main_test.go @@ -4,17 +4,17 @@ import ( "fmt" "testing" - "github.com/vaultdrop/backend/entities" + "github.com/vaultdrop/backend/models" ) func TestUserCreation(t *testing.T) { - err, userAntoine := entities.NewUser("antoine") + err, userAntoine := models.NewUser("antoine") if err != nil { t.Errorf(`Error creating antoine user %v`, err) } - err, userBob := entities.NewUser("bob") + err, userBob := models.NewUser("bob") if err != nil { t.Errorf(`Error creating bob user %v`, err) } @@ -25,16 +25,16 @@ func TestUserCreation(t *testing.T) { func TestCreateDocument(t *testing.T) { - err, document := entities.NewDocument("paper.pdf", entities.FILE) + err, document := models.NewDocument("paper.pdf", models.FILE, 1) if err != nil { t.Errorf(`Error creating document %v`, err) } - err, directory := entities.NewDocument("bob", entities.DIRECTORY) + err, directory := models.NewDocument("bob", models.DIRECTORY, 1) if err != nil { t.Errorf(`Error creating bob directory %v`, err) } fmt.Println(document, directory) -} +} \ No newline at end of file diff --git a/backend/handlers/.gitkeep b/backend/handlers/.gitkeep new file mode 100644 index 0000000..4dff090 --- /dev/null +++ b/backend/handlers/.gitkeep @@ -0,0 +1 @@ +# Gin HTTP handlers land here (bind the routes, current 501 stubs). \ No newline at end of file diff --git a/backend/models/clients.go b/backend/models/clients.go index 24e51eb..6e6b68a 100644 --- a/backend/models/clients.go +++ b/backend/models/clients.go @@ -1,4 +1,4 @@ -package entities +package models import "fmt" @@ -13,7 +13,7 @@ func NewClient(clientVersion int) (error, Client) { isCompatible := ServerClientIsCompatibleWithClient(clientVersion) if !isCompatible { - return fmt.Errorf("You client version %n is not compatible with the server verison %n", clientVersion, SERVER_VERSION), nil + return fmt.Errorf("You client version %d is not compatible with the server verison %d", clientVersion, SERVER_VERSION), nil } client := ClientVerisonOne{ diff --git a/backend/models/documents.go b/backend/models/documents.go index 6048da9..d3efc73 100644 --- a/backend/models/documents.go +++ b/backend/models/documents.go @@ -1,4 +1,4 @@ -package entities +package models import ( "fmt" diff --git a/backend/models/entities.go b/backend/models/entities.go index 1899b98..2640e7f 100644 --- a/backend/models/entities.go +++ b/backend/models/entities.go @@ -1 +1 @@ -package entities +package models diff --git a/backend/models/users.go b/backend/models/users.go index f48ec6b..bcab8ff 100644 --- a/backend/models/users.go +++ b/backend/models/users.go @@ -1,4 +1,4 @@ -package entities +package models type User struct { Username string diff --git a/backend/ocr/engine.go b/backend/ocr/engine.go new file mode 100644 index 0000000..3317f4f --- /dev/null +++ b/backend/ocr/engine.go @@ -0,0 +1,10 @@ +package ocr + +import "context" + +// Engine extracts text from a document (image or PDF) located at filePath. +// The V1 implementation is a Tesseract system call (OCR_LANG, défaut fra+eng); +// swapping to a remote service later only changes the injection point. +type Engine interface { + ExtractText(ctx context.Context, filePath string, lang string) (string, error) +} \ No newline at end of file diff --git a/backend/repository/.gitkeep b/backend/repository/.gitkeep new file mode 100644 index 0000000..a130b38 --- /dev/null +++ b/backend/repository/.gitkeep @@ -0,0 +1 @@ +# Postgres repositories land here (golang-migrate migrations, lib/pq). \ No newline at end of file diff --git a/backend/service/folders.go b/backend/service/folders.go index 2903e3b..367ebfe 100644 --- a/backend/service/folders.go +++ b/backend/service/folders.go @@ -1,10 +1,10 @@ -package services +package service -import "github.com/vaultdrop/backend/entities" +import "github.com/vaultdrop/backend/models" -func (s *Services) CreateFolder(folderName string, destination *entities.Document) (error, *entities.Document) { +func (s *Services) CreateFolder(folderName string, destination *models.Document) (error, *models.Document) { - err, directory := entities.NewDocument(folderName, entities.DIRECTORY) + err, directory := models.NewDocument(folderName, models.DIRECTORY, 1) if err != nil { return err, nil } diff --git a/backend/service/move.go b/backend/service/move.go index 383c386..0e9ec85 100644 --- a/backend/service/move.go +++ b/backend/service/move.go @@ -1,18 +1,18 @@ -package services +package service import ( "fmt" - "github.com/vaultdrop/backend/entities" + "github.com/vaultdrop/backend/models" ) -func (s *Services) MoveDocumentIntoDocument(from *entities.Document, to *entities.Document) error { +func (s *Services) MoveDocumentIntoDocument(from *models.Document, to *models.Document) error { - if from.DocumentUUID == nil { - return fmt.Errorf(entities.ERROR_DOCUMENT_NOT_PERCISTED) + if from.UUID == nil { + return fmt.Errorf(models.ERROR_DOCUMENT_NOT_PERCISTED) } - if to.DocumentType != entities.DIRECTORY { + if to.Type != models.DIRECTORY { return fmt.Errorf("The destination document must be a directory") } @@ -26,7 +26,7 @@ func (s *Services) MoveDocumentIntoDocument(from *entities.Document, to *entitie // Check if document exist and move the document into document if is directory - fmt.Println("To implement move to ", to.DocumentUUID) + fmt.Println("To implement move to ", to.UUID) return nil diff --git a/backend/service/move_test.go b/backend/service/move_test.go index 3c0e4ab..a1f1089 100644 --- a/backend/service/move_test.go +++ b/backend/service/move_test.go @@ -1,24 +1,24 @@ -package services +package service import ( "testing" - "github.com/vaultdrop/backend/entities" + "github.com/vaultdrop/backend/models" ) func TestMoveDocument(t *testing.T) { - err, userAntoine := entities.NewUser("antoine") + err, userAntoine := models.NewUser("antoine") if err != nil { t.Errorf(`Error creating antoine user %v`, err) } fakeUUID := "dsqdsq" - err, document := entities.NewDocument("test.pdf", entities.FILE) - document.DocumentUUID = &fakeUUID + err, document := models.NewDocument("test.pdf", models.FILE, 1) + document.UUID = &fakeUUID - err, folder := entities.NewDocument("orga", entities.DIRECTORY) - folder.DocumentUUID = &fakeUUID + err, folder := models.NewDocument("orga", models.DIRECTORY, 1) + folder.UUID = &fakeUUID service := New(userAntoine) @@ -32,14 +32,14 @@ func TestMoveDocument(t *testing.T) { func TestMoveDocumentToAFile(t *testing.T) { - err, userAntoine := entities.NewUser("antoine") + err, userAntoine := models.NewUser("antoine") if err != nil { t.Errorf(`Error creating antoine user %v`, err) } - err, document := entities.NewDocument("test.pdf", entities.FILE) + err, document := models.NewDocument("test.pdf", models.FILE, 1) - err, notAFolder := entities.NewDocument("orga", entities.FILE) + err, notAFolder := models.NewDocument("orga", models.FILE, 1) service := New(userAntoine) @@ -49,4 +49,4 @@ func TestMoveDocumentToAFile(t *testing.T) { t.Error(err) } -} +} \ No newline at end of file diff --git a/backend/service/services.go b/backend/service/services.go index b9db9b5..f00b11d 100644 --- a/backend/service/services.go +++ b/backend/service/services.go @@ -1,14 +1,12 @@ -package services +package service -import "github.com/vaultdrop/backend/entities" - -// import "github.com/vaultdrop/backend/entities" +import "github.com/vaultdrop/backend/models" type Services struct { - ConnectedUser *entities.User + ConnectedUser *models.User } -func New(connectedUser *entities.User) *Services { +func New(connectedUser *models.User) *Services { return &Services{ ConnectedUser: connectedUser, @@ -16,18 +14,18 @@ func New(connectedUser *entities.User) *Services { } -func UserCanReadDocument(connectedUser *entities.User, document *entities.Document) (bool, string) { +func UserCanReadDocument(connectedUser *models.User, document *models.Document) (bool, string) { return true, "" } -func UserCanEditDocument(connectedUser *entities.User, document *entities.Document) (bool, string) { +func UserCanEditDocument(connectedUser *models.User, document *models.Document) (bool, string) { return true, "" } -func UserCanDeleteDocument(connectedUser *entities.User, document *entities.Document) (bool, string) { +func UserCanDeleteDocument(connectedUser *models.User, document *models.Document) (bool, string) { return true, "" } -func UserCanCreateDocument(connectedUser *entities.User, document *entities.Document) (bool, string) { +func UserCanCreateDocument(connectedUser *models.User, document *models.Document) (bool, string) { return true, "" } diff --git a/backend/service/upload.go b/backend/service/upload.go index 448a905..ae3af36 100644 --- a/backend/service/upload.go +++ b/backend/service/upload.go @@ -1,18 +1,18 @@ -package services +package service import ( "fmt" - "github.com/vaultdrop/backend/entities" + "github.com/vaultdrop/backend/models" ) -func (s *Services) UploadDocument(file *string, destination *entities.Document) error { +func (s *Services) UploadDocument(file *string, destination *models.Document) error { if canEdit, _ := UserCanEditDocument(s.ConnectedUser, destination); !canEdit { return fmt.Errorf("Can not edit") } - entities.NewDocument("test", entities.FILE) + models.NewDocument("test", models.FILE, 1) return nil diff --git a/backend/uploads/.gitkeep b/backend/uploads/.gitkeep new file mode 100644 index 0000000..083694e --- /dev/null +++ b/backend/uploads/.gitkeep @@ -0,0 +1 @@ +# Uploaded files (MAX_FILE_SIZE_MB = 50 by default). \ No newline at end of file