43 lines
1.3 KiB
Go
43 lines
1.3 KiB
Go
package profileService
|
||
|
||
import (
|
||
"bytes"
|
||
"context"
|
||
"fmt"
|
||
"io"
|
||
|
||
"gitea.cybertalant.ru/VisionCareerMiniapp/MiniappGoService/internal/application/constants"
|
||
"gitea.cybertalant.ru/VisionCareerMiniapp/MiniappGoService/internal/application/types"
|
||
"gitea.cybertalant.ru/VisionCareerMiniapp/MiniappGoService/internal/application/utils"
|
||
"github.com/minio/minio-go/v7"
|
||
)
|
||
|
||
func (t *service) SaveResume(
|
||
user *types.User, fileName string,
|
||
fileReader io.Reader, fileSize int64,
|
||
) (string, error) {
|
||
op := "profileService/SaveResume"
|
||
// Read file
|
||
data, err := io.ReadAll(fileReader)
|
||
if err != nil {
|
||
t.logger.Error(fmt.Sprintf("%v: %v", op, err.Error()))
|
||
return "", fmt.Errorf("Произошла ошибка при проверке файла...")
|
||
}
|
||
// Validate file
|
||
if err := utils.FileValidation(fileName, data); err != nil {
|
||
t.logger.Error(fmt.Sprintf("%v: %v", op, err.Error()))
|
||
return "", fmt.Errorf("Невалидный файл...")
|
||
}
|
||
// Save resume file
|
||
resumePath, err := t.minioDB.UploadFile(
|
||
context.Background(), constants.ResumeBucketName,
|
||
fileName, bytes.NewReader(data), fileSize, minio.PutObjectOptions{},
|
||
)
|
||
if err != nil {
|
||
t.logger.Error(fmt.Sprintf("%v: %v", op, err.Error()))
|
||
return "", fmt.Errorf("Произошла ошибка при cохранении файла...")
|
||
}
|
||
|
||
return resumePath, nil
|
||
}
|