diff --git a/perxis-proto b/perxis-proto index 278f919cda5b9d9aac548f1714213eaf52c28d7f..0627c9f829178bc6de2623a0b6d42964c44de496 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 7386831322a0c67852cd18e570bc3a0c5781da9f..bd237bd622f657861cef5bf608fcf5bf2aba1898 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 }