From 87b6304193c2cfb6c53189aaf497bef0215254ca Mon Sep 17 00:00:00 2001
From: Anton Sattarov <sattarov@perx.ru>
Date: Thu, 26 Dec 2024 13:34:27 +0000
Subject: [PATCH] =?UTF-8?q?fix(files):=20=D0=98=D1=81=D0=BF=D1=80=D0=B0?=
 =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA?=
 =?UTF-8?q?=D0=B0=20=D0=BF=D1=80=D0=B8=20=D0=BA=D0=BE=D1=82=D0=BE=D1=80?=
 =?UTF-8?q?=D0=BE=D0=B9=20=D0=B2=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=BD=D1=8B?=
 =?UTF-8?q?=D0=B5=20=D1=84=D0=B0=D0=B9=D0=BB=D1=8B=20=D0=BD=D0=B5=20=D0=BF?=
 =?UTF-8?q?=D0=B5=D1=80=D0=B5=D0=BC=D0=B5=D1=89=D0=B0=D0=BB=D0=B8=D1=81?=
 =?UTF-8?q?=D1=8C=20=D0=B2=20=D0=BF=D0=BE=D1=81=D1=82=D0=BE=D1=8F=D0=BD?=
 =?UTF-8?q?=D0=BD=D0=BE=D0=B5=20=D1=85=D1=80=D0=B0=D0=BD=D0=B8=D0=BB=D0=B8?=
 =?UTF-8?q?=D1=89=D0=B5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 perxis-proto       |  2 +-
 pkg/files/field.go | 12 +++++-------
 2 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/perxis-proto b/perxis-proto
index 278f919c..0627c9f8 160000
--- a/perxis-proto
+++ b/perxis-proto
@@ -1 +1 @@
-Subproject commit 278f919cda5b9d9aac548f1714213eaf52c28d7f
+Subproject commit 0627c9f829178bc6de2623a0b6d42964c44de496
diff --git a/pkg/files/field.go b/pkg/files/field.go
index 73868313..bd237bd6 100644
--- a/pkg/files/field.go
+++ b/pkg/files/field.go
@@ -2,7 +2,6 @@ package files
 
 import (
 	"context"
-	"errors"
 	"fmt"
 	"io"
 	"net/url"
@@ -132,17 +131,16 @@ func (t FileType) PreSave(ctx context.Context, fld *field.Field, v interface{},
 		return nil, false, nil
 	}
 	f := v.(*File)
-	if f.ID == "" {
-		return nil, false, errors.New("FileType: file id required")
-	}
-	if !f.Temporary {
-		return f, false, nil
-	}
 
+	// Выполняет проверка и сохранение файла в постоянное хранилище
+	// Если файл уже находится в постоянном хранилище, то ничего не делаем
+	// TODO при реализации SaveFile нужно передавать флаг или ошибку
+	//  - чтобы корректно отдавать флаr changed если файл не перемещался
 	f, err := t.fs.MoveUpload(ctx, &MultipartUpload{File: *f})
 	if err != nil {
 		return nil, false, err
 	}
+
 	return f, true, nil
 }
 
-- 
GitLab