78 lines
2.8 KiB
Go
78 lines
2.8 KiB
Go
package services
|
|
|
|
import (
|
|
"context"
|
|
"history-api/internal/dtos/request"
|
|
"history-api/internal/dtos/response"
|
|
"history-api/internal/repositories"
|
|
"history-api/pkg/storage"
|
|
"mime/multipart"
|
|
)
|
|
|
|
type MediaService interface {
|
|
GetMediaByID(ctx context.Context, mediaId string) (*response.MediaResponse, error)
|
|
GetMediaByUserID(ctx context.Context, userId string) ([]*response.MediaResponse, error)
|
|
SearchMedia(ctx context.Context, dto *request.SearchMediaDto) (*response.PaginatedResponse, error)
|
|
DeleteMedia(ctx context.Context, mediaId string) error
|
|
GetMediaByTarget(ctx context.Context, targetType string, targetId string) ([]*response.MediaResponse, error)
|
|
UploadServerSide(ctx context.Context, userId string, fileHeader *multipart.FileHeader) (*response.MediaResponse, error)
|
|
GeneratePresignedURL(ctx context.Context, userId string, dto *request.PreSignedDto) (*response.PreSignedResponse, error)
|
|
PreSignedCompleted(ctx context.Context, userId string, dto *request.PreSignedCompleteDto) (*response.MediaResponse, error)
|
|
}
|
|
|
|
type mediaService struct {
|
|
mediaRepo repositories.MediaRepository
|
|
s storage.Storage
|
|
}
|
|
|
|
func NewMediaService(
|
|
mediaRepo repositories.MediaRepository,
|
|
s storage.Storage,
|
|
) MediaService {
|
|
return &mediaService{
|
|
mediaRepo: mediaRepo,
|
|
s: s,
|
|
}
|
|
}
|
|
|
|
// DeleteMedia implements [MediaService].
|
|
func (m *mediaService) DeleteMedia(ctx context.Context, mediaId string) error {
|
|
panic("unimplemented")
|
|
}
|
|
|
|
// GeneratePresignedURL implements [MediaService].
|
|
func (m *mediaService) GeneratePresignedURL(ctx context.Context, userId string, dto *request.PreSignedDto) (*response.PreSignedResponse, error) {
|
|
panic("unimplemented")
|
|
}
|
|
|
|
// GetMediaByID implements [MediaService].
|
|
func (m *mediaService) GetMediaByID(ctx context.Context, mediaId string) (*response.MediaResponse, error) {
|
|
panic("unimplemented")
|
|
}
|
|
|
|
// GetMediaByTarget implements [MediaService].
|
|
func (m *mediaService) GetMediaByTarget(ctx context.Context, targetType string, targetId string) ([]*response.MediaResponse, error) {
|
|
panic("unimplemented")
|
|
}
|
|
|
|
// GetMediaByUserID implements [MediaService].
|
|
func (m *mediaService) GetMediaByUserID(ctx context.Context, userId string) ([]*response.MediaResponse, error) {
|
|
panic("unimplemented")
|
|
}
|
|
|
|
// PreSignedCompleted implements [MediaService].
|
|
func (m *mediaService) PreSignedCompleted(ctx context.Context, userId string, dto *request.PreSignedCompleteDto) (*response.MediaResponse, error) {
|
|
panic("unimplemented")
|
|
}
|
|
|
|
// SearchMedia implements [MediaService].
|
|
func (m *mediaService) SearchMedia(ctx context.Context, dto *request.SearchMediaDto) (*response.PaginatedResponse, error) {
|
|
panic("unimplemented")
|
|
}
|
|
|
|
// UploadServerSide implements [MediaService].
|
|
func (m *mediaService) UploadServerSide(ctx context.Context, userId string, fileHeader *multipart.FileHeader) (*response.MediaResponse, error) {
|
|
panic("unimplemented")
|
|
}
|
|
|