replace vault by kasier
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
# Serveur
|
||||
PORT=8080
|
||||
DATABASE_URL=postgres://vaultdrop:vaultdrop@localhost:5432/vaultdrop_dev?sslmode=disable
|
||||
DATABASE_URL=postgres://kazier:kazier@localhost:5432/kazier_dev?sslmode=disable
|
||||
UPLOAD_DIR=./uploads
|
||||
MAX_FILE_SIZE_MB=50
|
||||
OCR_LANG=fra+eng
|
||||
|
||||
+9
-9
@@ -14,7 +14,7 @@ ARG VERSION
|
||||
RUN CGO_ENABLED=0 GOOS=linux go build \
|
||||
-trimpath \
|
||||
-ldflags "-s -w -X main.version=${VERSION}" \
|
||||
-o /out/vaultdrop-server \
|
||||
-o /out/kazier-server \
|
||||
./cmd/server/main.go
|
||||
|
||||
# --- runtime: mince, Tesseract (fra+eng) embarqué pour l'OCR ---
|
||||
@@ -30,30 +30,30 @@ WORKDIR /app
|
||||
|
||||
ARG VERSION
|
||||
ARG BUILD_DATE
|
||||
LABEL org.opencontainers.image.title="vaultdrop-server" \
|
||||
org.opencontainers.image.description="VaultDrop backend API (Go/Gin + PostgreSQL) — local-first document vault" \
|
||||
LABEL org.opencontainers.image.title="kazier-server" \
|
||||
org.opencontainers.image.description="Kazier backend API (Go/Gin + PostgreSQL) — local-first document vault" \
|
||||
org.opencontainers.image.version="${VERSION}" \
|
||||
org.opencontainers.image.licenses="AGPL-3.0-only" \
|
||||
org.opencontainers.image.source="https://gitlab.com/thirdshop-org/dot" \
|
||||
org.opencontainers.image.url="https://thirdshop.fr/en/applications/vault/" \
|
||||
org.opencontainers.image.url="https://thirdshop.fr/en/applications/kazier/" \
|
||||
org.opencontainers.image.created="${BUILD_DATE}" \
|
||||
org.opencontainers.image.revision=""
|
||||
|
||||
COPY --from=builder /out/vaultdrop-server /usr/local/bin/vaultdrop-server
|
||||
COPY --from=builder /out/kazier-server /usr/local/bin/kazier-server
|
||||
|
||||
# UPLOAD_DIR persistant, user non-root
|
||||
RUN mkdir -p /app/uploads \
|
||||
&& adduser -D -H -u 10001 vaultdrop \
|
||||
&& chown vaultdrop:vaultdrop /app/uploads
|
||||
&& adduser -D -H -u 10001 kazier \
|
||||
&& chown kazier:kazier /app/uploads
|
||||
VOLUME /app/uploads
|
||||
|
||||
ENV PORT=8080 \
|
||||
UPLOAD_DIR=/app/uploads
|
||||
|
||||
USER vaultdrop
|
||||
USER kazier
|
||||
EXPOSE 8080
|
||||
|
||||
HEALTHCHECK --interval=30s --timeout=3s --retries=3 \
|
||||
CMD wget -q -O - http://127.0.0.1:8080/api/v1/health || exit 1
|
||||
|
||||
ENTRYPOINT ["vaultdrop-server"]
|
||||
ENTRYPOINT ["kazier-server"]
|
||||
@@ -12,13 +12,13 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/vaultdrop/backend/config"
|
||||
"github.com/vaultdrop/backend/db"
|
||||
"github.com/vaultdrop/backend/handlers"
|
||||
"github.com/vaultdrop/backend/ocr"
|
||||
"github.com/vaultdrop/backend/pkg/auth"
|
||||
"github.com/vaultdrop/backend/repository"
|
||||
"github.com/vaultdrop/backend/service"
|
||||
"github.com/kazier/backend/config"
|
||||
"github.com/kazier/backend/db"
|
||||
"github.com/kazier/backend/handlers"
|
||||
"github.com/kazier/backend/ocr"
|
||||
"github.com/kazier/backend/pkg/auth"
|
||||
"github.com/kazier/backend/repository"
|
||||
"github.com/kazier/backend/service"
|
||||
)
|
||||
|
||||
var version = "dev"
|
||||
@@ -31,7 +31,7 @@ func newRouter() *gin.Engine {
|
||||
|
||||
func main() {
|
||||
if len(os.Args) > 1 && os.Args[1] == "--version" {
|
||||
fmt.Printf("vaultdrop-server %s\n", version)
|
||||
fmt.Printf("kazier-server %s\n", version)
|
||||
os.Exit(0)
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import (
|
||||
"fmt"
|
||||
"testing"
|
||||
|
||||
"github.com/vaultdrop/backend/models"
|
||||
"github.com/kazier/backend/models"
|
||||
)
|
||||
|
||||
func TestUserCreation(t *testing.T) {
|
||||
|
||||
@@ -41,7 +41,7 @@ func LoadApplicationConfig() (*ApplicationConfig, error) {
|
||||
|
||||
return &ApplicationConfig{
|
||||
Port: port,
|
||||
DatabaseURL: get("DATABASE_URL", "postgres://vaultdrop:vaultdrop@localhost:5432/vaultdrop_dev?sslmode=disable"),
|
||||
DatabaseURL: get("DATABASE_URL", "postgres://kazier:kazier@localhost:5432/kazier_dev?sslmode=disable"),
|
||||
UploadDir: get("UPLOAD_DIR", "./uploads"),
|
||||
MaxFileSizeMB: int64(maxSize),
|
||||
OcrLang: get("OCR_LANG", "fra+eng"),
|
||||
|
||||
@@ -28,7 +28,7 @@ func TestLoadApplicationDefaults(t *testing.T) {
|
||||
if cfg.MaxFileSizeMB != 50 {
|
||||
t.Errorf("MaxFileSizeMB = %d, attendu 50", cfg.MaxFileSizeMB)
|
||||
}
|
||||
if cfg.DatabaseURL != "postgres://vaultdrop:vaultdrop@localhost:5432/vaultdrop_dev?sslmode=disable" {
|
||||
if cfg.DatabaseURL != "postgres://kazier:kazier@localhost:5432/kazier_dev?sslmode=disable" {
|
||||
t.Errorf("DatabaseURL défaut inattendu: %q", cfg.DatabaseURL)
|
||||
}
|
||||
if cfg.UploadDir != "./uploads" {
|
||||
|
||||
@@ -9,7 +9,7 @@ import (
|
||||
_ "github.com/lib/pq"
|
||||
)
|
||||
|
||||
const defaultTestDatabaseURL = "postgres://vaultdrop:vaultdrop@localhost:5432/vaultdrop_migrations_test?sslmode=disable"
|
||||
const defaultTestDatabaseURL = "postgres://kazier:kazier@localhost:5432/kazier_migrations_test?sslmode=disable"
|
||||
|
||||
func testDatabaseURL(t *testing.T) string {
|
||||
t.Helper()
|
||||
|
||||
@@ -10,7 +10,7 @@ import (
|
||||
|
||||
"github.com/lib/pq"
|
||||
|
||||
"github.com/vaultdrop/backend/db"
|
||||
"github.com/kazier/backend/db"
|
||||
)
|
||||
|
||||
// OpenTestDatabase ensures the test database exists, resets its schema, runs
|
||||
@@ -27,7 +27,7 @@ func OpenTestDatabase(t *testing.T, databaseURL string) *sql.DB {
|
||||
databaseURL = os.Getenv("TEST_DATABASE_URL")
|
||||
}
|
||||
if databaseURL == "" {
|
||||
databaseURL = "postgres://vaultdrop:vaultdrop@localhost:5432/vaultdrop_test?sslmode=disable"
|
||||
databaseURL = "postgres://kazier:kazier@localhost:5432/kazier_test?sslmode=disable"
|
||||
}
|
||||
|
||||
// Postgres joignable ? (sinon on skippe, sans être gênés par l'existence
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
module github.com/vaultdrop/backend
|
||||
module github.com/kazier/backend
|
||||
|
||||
go 1.26.4
|
||||
|
||||
|
||||
@@ -8,11 +8,11 @@ import (
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
|
||||
"github.com/vaultdrop/backend/pkg/api"
|
||||
"github.com/vaultdrop/backend/pkg/auth"
|
||||
"github.com/vaultdrop/backend/pkg/passwd"
|
||||
"github.com/vaultdrop/backend/repository"
|
||||
"github.com/vaultdrop/backend/service"
|
||||
"github.com/kazier/backend/pkg/api"
|
||||
"github.com/kazier/backend/pkg/auth"
|
||||
"github.com/kazier/backend/pkg/passwd"
|
||||
"github.com/kazier/backend/repository"
|
||||
"github.com/kazier/backend/service"
|
||||
)
|
||||
|
||||
type LoginRequest struct {
|
||||
|
||||
@@ -9,17 +9,17 @@ import (
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
|
||||
"github.com/vaultdrop/backend/dbtest"
|
||||
"github.com/vaultdrop/backend/pkg/auth"
|
||||
"github.com/vaultdrop/backend/pkg/passwd"
|
||||
"github.com/vaultdrop/backend/repository"
|
||||
"github.com/vaultdrop/backend/service"
|
||||
"github.com/kazier/backend/dbtest"
|
||||
"github.com/kazier/backend/pkg/auth"
|
||||
"github.com/kazier/backend/pkg/passwd"
|
||||
"github.com/kazier/backend/repository"
|
||||
"github.com/kazier/backend/service"
|
||||
)
|
||||
|
||||
const authTestURL = "postgres://vaultdrop:vaultdrop@localhost:5432/vaultdrop_handlers_auth_test?sslmode=disable"
|
||||
const authTestURL = "postgres://kazier:kazier@localhost:5432/kazier_handlers_auth_test?sslmode=disable"
|
||||
|
||||
const (
|
||||
authTestPassword = "vaultdrop-test-password"
|
||||
authTestPassword = "kazier-test-password"
|
||||
authTestDevice = "0123456789abcdef0123456789abcdef"
|
||||
)
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import (
|
||||
"regexp"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/vaultdrop/backend/pkg/api"
|
||||
"github.com/kazier/backend/pkg/api"
|
||||
)
|
||||
|
||||
var deviceIDPattern = regexp.MustCompile(`^[0-9a-f]{32}$`)
|
||||
|
||||
@@ -7,7 +7,7 @@ import (
|
||||
"strings"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/vaultdrop/backend/pkg/api"
|
||||
"github.com/kazier/backend/pkg/api"
|
||||
)
|
||||
|
||||
func intParam(value string, fallback int) int {
|
||||
|
||||
@@ -11,15 +11,15 @@ import (
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
|
||||
"github.com/vaultdrop/backend/dbtest"
|
||||
"github.com/vaultdrop/backend/handlers"
|
||||
"github.com/vaultdrop/backend/pkg/auth"
|
||||
"github.com/vaultdrop/backend/pkg/passwd"
|
||||
"github.com/vaultdrop/backend/repository"
|
||||
"github.com/vaultdrop/backend/service"
|
||||
"github.com/kazier/backend/dbtest"
|
||||
"github.com/kazier/backend/handlers"
|
||||
"github.com/kazier/backend/pkg/auth"
|
||||
"github.com/kazier/backend/pkg/passwd"
|
||||
"github.com/kazier/backend/repository"
|
||||
"github.com/kazier/backend/service"
|
||||
)
|
||||
|
||||
const handlersTestURL = "postgres://vaultdrop:vaultdrop@localhost:5432/vaultdrop_handlers_test?sslmode=disable"
|
||||
const handlersTestURL = "postgres://kazier:kazier@localhost:5432/kazier_handlers_test?sslmode=disable"
|
||||
|
||||
type envelope struct {
|
||||
Data json.RawMessage `json:"data"`
|
||||
|
||||
@@ -2,7 +2,7 @@ package handlers
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/vaultdrop/backend/pkg/api"
|
||||
"github.com/kazier/backend/pkg/api"
|
||||
)
|
||||
|
||||
func Health(c *gin.Context) {
|
||||
|
||||
@@ -6,9 +6,9 @@ import (
|
||||
"strings"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/vaultdrop/backend/pkg/api"
|
||||
"github.com/vaultdrop/backend/pkg/auth"
|
||||
"github.com/vaultdrop/backend/repository"
|
||||
"github.com/kazier/backend/pkg/api"
|
||||
"github.com/kazier/backend/pkg/auth"
|
||||
"github.com/kazier/backend/repository"
|
||||
)
|
||||
|
||||
const (
|
||||
|
||||
@@ -5,8 +5,8 @@ import (
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
|
||||
"github.com/vaultdrop/backend/pkg/api"
|
||||
"github.com/vaultdrop/backend/repository"
|
||||
"github.com/kazier/backend/pkg/api"
|
||||
"github.com/kazier/backend/repository"
|
||||
)
|
||||
|
||||
type ocrJobRequest struct {
|
||||
|
||||
@@ -11,11 +11,11 @@ import (
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
|
||||
"github.com/vaultdrop/backend/dbtest"
|
||||
"github.com/vaultdrop/backend/handlers"
|
||||
"github.com/vaultdrop/backend/pkg/auth"
|
||||
"github.com/vaultdrop/backend/repository"
|
||||
"github.com/vaultdrop/backend/service"
|
||||
"github.com/kazier/backend/dbtest"
|
||||
"github.com/kazier/backend/handlers"
|
||||
"github.com/kazier/backend/pkg/auth"
|
||||
"github.com/kazier/backend/repository"
|
||||
"github.com/kazier/backend/service"
|
||||
)
|
||||
|
||||
type stubEngine struct {
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
|
||||
"github.com/vaultdrop/backend/pkg/api"
|
||||
"github.com/kazier/backend/pkg/api"
|
||||
)
|
||||
|
||||
// RegisterRoutes wires the full /api/v1 surface (public + protected).
|
||||
|
||||
@@ -5,8 +5,8 @@ import (
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
|
||||
"github.com/vaultdrop/backend/pkg/api"
|
||||
"github.com/vaultdrop/backend/repository"
|
||||
"github.com/kazier/backend/pkg/api"
|
||||
"github.com/kazier/backend/repository"
|
||||
)
|
||||
|
||||
// ShareLinkGet resolves a public share link without authentication
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"testing"
|
||||
|
||||
"github.com/vaultdrop/backend/repository"
|
||||
"github.com/kazier/backend/repository"
|
||||
)
|
||||
|
||||
func TestShareLinkPublicResolution(t *testing.T) {
|
||||
|
||||
@@ -4,9 +4,9 @@ import (
|
||||
"errors"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/vaultdrop/backend/pkg/api"
|
||||
"github.com/vaultdrop/backend/repository"
|
||||
"github.com/vaultdrop/backend/service"
|
||||
"github.com/kazier/backend/pkg/api"
|
||||
"github.com/kazier/backend/repository"
|
||||
"github.com/kazier/backend/service"
|
||||
)
|
||||
|
||||
// Store is the business layer used by handlers; set once at startup
|
||||
|
||||
@@ -5,8 +5,8 @@ import (
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
|
||||
"github.com/vaultdrop/backend/pkg/api"
|
||||
"github.com/vaultdrop/backend/service"
|
||||
"github.com/kazier/backend/pkg/api"
|
||||
"github.com/kazier/backend/service"
|
||||
)
|
||||
|
||||
type syncOpsRequest struct {
|
||||
|
||||
@@ -6,7 +6,7 @@ import (
|
||||
"net/http"
|
||||
"testing"
|
||||
|
||||
"github.com/vaultdrop/backend/repository"
|
||||
"github.com/kazier/backend/repository"
|
||||
)
|
||||
|
||||
func syncOpsBody(ops []map[string]any) []byte {
|
||||
|
||||
@@ -35,7 +35,7 @@ var (
|
||||
// quand même contre ce hash pour que le délai de réponse soit identique à un
|
||||
// « mauvais mot de passe ».
|
||||
var dummyHash = func() string {
|
||||
h, err := Hash("vaultdrop-constantime-dummy")
|
||||
h, err := Hash("kazier-constantime-dummy")
|
||||
if err != nil {
|
||||
panic(fmt.Sprintf("passwd: impossible de pré-hacher le dummy: %v", err))
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ package repository
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/vaultdrop/backend/dbtest"
|
||||
"github.com/kazier/backend/dbtest"
|
||||
)
|
||||
|
||||
func newTestDevices(t *testing.T) *Devices {
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/vaultdrop/backend/dbtest"
|
||||
"github.com/kazier/backend/dbtest"
|
||||
)
|
||||
|
||||
func newTestRepo(t *testing.T) *Repository {
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"errors"
|
||||
"testing"
|
||||
|
||||
"github.com/vaultdrop/backend/dbtest"
|
||||
"github.com/kazier/backend/dbtest"
|
||||
)
|
||||
|
||||
func newTestOperations(t *testing.T) (*Operations, *Devices) {
|
||||
|
||||
@@ -5,10 +5,10 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/vaultdrop/backend/dbtest"
|
||||
"github.com/kazier/backend/dbtest"
|
||||
)
|
||||
|
||||
const repositoryTestURL = "postgres://vaultdrop:vaultdrop@localhost:5432/vaultdrop_repository_test?sslmode=disable"
|
||||
const repositoryTestURL = "postgres://kazier:kazier@localhost:5432/kazier_repository_test?sslmode=disable"
|
||||
|
||||
func newTestResources(t *testing.T) *Resources {
|
||||
t.Helper()
|
||||
|
||||
@@ -4,7 +4,7 @@ import (
|
||||
"errors"
|
||||
"testing"
|
||||
|
||||
"github.com/vaultdrop/backend/dbtest"
|
||||
"github.com/kazier/backend/dbtest"
|
||||
)
|
||||
|
||||
func newTestUsers(t *testing.T) *Users {
|
||||
|
||||
@@ -5,8 +5,8 @@ import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/vaultdrop/backend/pkg/passwd"
|
||||
"github.com/vaultdrop/backend/repository"
|
||||
"github.com/kazier/backend/pkg/passwd"
|
||||
"github.com/kazier/backend/repository"
|
||||
)
|
||||
|
||||
// ErrAdminRequired : base vide et identifiants admin absents → le serveur
|
||||
|
||||
@@ -4,8 +4,8 @@ import (
|
||||
"errors"
|
||||
"testing"
|
||||
|
||||
"github.com/vaultdrop/backend/pkg/passwd"
|
||||
"github.com/vaultdrop/backend/repository"
|
||||
"github.com/kazier/backend/pkg/passwd"
|
||||
"github.com/kazier/backend/repository"
|
||||
)
|
||||
|
||||
func TestEnsureAdminCreatesFirstAdmin(t *testing.T) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package service
|
||||
|
||||
import "github.com/vaultdrop/backend/models"
|
||||
import "github.com/kazier/backend/models"
|
||||
|
||||
func (s *Services) CreateFolder(folderName string, destination *models.Document) (*models.Document, error) {
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
"github.com/vaultdrop/backend/models"
|
||||
"github.com/kazier/backend/models"
|
||||
)
|
||||
|
||||
func (s *Services) MoveDocumentIntoDocument(from *models.Document, to *models.Document) error {
|
||||
|
||||
@@ -3,7 +3,7 @@ package service
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/vaultdrop/backend/models"
|
||||
"github.com/kazier/backend/models"
|
||||
)
|
||||
|
||||
func TestMoveDocument(t *testing.T) {
|
||||
|
||||
@@ -9,8 +9,8 @@ import (
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/vaultdrop/backend/ocr"
|
||||
"github.com/vaultdrop/backend/repository"
|
||||
"github.com/kazier/backend/ocr"
|
||||
"github.com/kazier/backend/repository"
|
||||
)
|
||||
|
||||
const (
|
||||
|
||||
@@ -9,8 +9,8 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/vaultdrop/backend/ocr"
|
||||
"github.com/vaultdrop/backend/repository"
|
||||
"github.com/kazier/backend/ocr"
|
||||
"github.com/kazier/backend/repository"
|
||||
)
|
||||
|
||||
// stubEngine again (package service) — même contrat que handlers/ocr_test.
|
||||
|
||||
@@ -10,7 +10,7 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/vaultdrop/backend/repository"
|
||||
"github.com/kazier/backend/repository"
|
||||
)
|
||||
|
||||
// ErrFileTooLarge signals an upload above MaxFileSize.
|
||||
|
||||
@@ -8,7 +8,7 @@ import (
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
||||
"github.com/vaultdrop/backend/repository"
|
||||
"github.com/kazier/backend/repository"
|
||||
)
|
||||
|
||||
func multipartFileHeader(t *testing.T, filename string, content []byte) *multipart.FileHeader {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package service
|
||||
|
||||
import "github.com/vaultdrop/backend/models"
|
||||
import "github.com/kazier/backend/models"
|
||||
|
||||
type Services struct {
|
||||
ConnectedUser *models.User
|
||||
|
||||
@@ -6,7 +6,7 @@ import (
|
||||
"regexp"
|
||||
"time"
|
||||
|
||||
"github.com/vaultdrop/backend/repository"
|
||||
"github.com/kazier/backend/repository"
|
||||
)
|
||||
|
||||
var resourceIDPattern = regexp.MustCompile(`^[0-9a-f]{32}$`)
|
||||
|
||||
@@ -6,11 +6,11 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/vaultdrop/backend/dbtest"
|
||||
"github.com/vaultdrop/backend/repository"
|
||||
"github.com/kazier/backend/dbtest"
|
||||
"github.com/kazier/backend/repository"
|
||||
)
|
||||
|
||||
const serviceTestURL = "postgres://vaultdrop:vaultdrop@localhost:5432/vaultdrop_service_test?sslmode=disable"
|
||||
const serviceTestURL = "postgres://kazier:kazier@localhost:5432/kazier_service_test?sslmode=disable"
|
||||
|
||||
// newServiceStore returns a Resources service over a fresh migrated test DB.
|
||||
func newServiceStore(t *testing.T) *Resources {
|
||||
|
||||
@@ -3,7 +3,7 @@ package service
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/vaultdrop/backend/models"
|
||||
"github.com/kazier/backend/models"
|
||||
)
|
||||
|
||||
func (s *Services) UploadDocument(file *string, destination *models.Document) error {
|
||||
|
||||
Reference in New Issue
Block a user