generated from VLADIMIR/template
40 lines
720 B
Go
40 lines
720 B
Go
package file_service
|
|
|
|
import (
|
|
"context"
|
|
"evening_detective_server/internal/modules/file_storage"
|
|
)
|
|
|
|
type FileService struct {
|
|
fileStorage file_storage.IFileStorage
|
|
}
|
|
|
|
func NewFileService(
|
|
fileStorage file_storage.IFileStorage,
|
|
) *FileService {
|
|
return &FileService{
|
|
fileStorage: fileStorage,
|
|
}
|
|
}
|
|
|
|
func (s *FileService) UploadFile(
|
|
ctx context.Context,
|
|
file *file_storage.File,
|
|
) (string, error) {
|
|
if err := s.fileStorage.Put(ctx, file); err != nil {
|
|
return "", err
|
|
}
|
|
return file.Name, nil
|
|
}
|
|
|
|
func (s *FileService) DownloadFile(
|
|
ctx context.Context,
|
|
filename string,
|
|
) (*file_storage.File, error) {
|
|
file, err := s.fileStorage.Get(ctx, filename)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return file, nil
|
|
}
|