From a995f4c75a7db486c5f01c9b9dfe9df0641168bc Mon Sep 17 00:00:00 2001 From: nquidox Date: Sat, 25 Oct 2025 17:41:04 +0300 Subject: [PATCH] utils DI --- config/config.go | 8 +++++- internal/mainHandler/handler.go | 6 ++--- internal/mainHandler/service.go | 48 +++++---------------------------- 3 files changed, 16 insertions(+), 46 deletions(-) diff --git a/config/config.go b/config/config.go index 1d02a23..132980b 100644 --- a/config/config.go +++ b/config/config.go @@ -1,5 +1,7 @@ package config +import "strings" + type Config struct { App AppConfig } @@ -19,9 +21,13 @@ func NewConfig() *Config { Host: getEnv("HOST", ""), HttpPort: getEnv("HTTP_PORT", ""), GrpcPort: getEnv("GRPC_PORT", ""), - Domain: getEnv("DOMAIN", ""), + Domain: formatDomain(getEnv("DOMAIN", "")), Volume: getEnv("VOLUME", ""), LogLevel: getEnv("LOG_LEVEL", ""), }, } } + +func formatDomain(domain string) string { + return strings.TrimRight(domain, "/") +} diff --git a/internal/mainHandler/handler.go b/internal/mainHandler/handler.go index 478e09b..a258926 100644 --- a/internal/mainHandler/handler.go +++ b/internal/mainHandler/handler.go @@ -9,22 +9,22 @@ import ( type ImageHandler struct { pb.UnimplementedImageStorageServer converter interfaces.Converter - domain string volume string + utils interfaces.Utils } type Deps struct { Converter interfaces.Converter - Domain string Volume string + Utils interfaces.Utils } func NewHandler(deps Deps) *grpc.Server { srv := grpc.NewServer() imgSrv := ImageHandler{ converter: deps.Converter, - domain: deps.Domain, volume: deps.Volume, + utils: deps.Utils, } pb.RegisterImageStorageServer(srv, &imgSrv) diff --git a/internal/mainHandler/service.go b/internal/mainHandler/service.go index 14d2bd1..b0848f2 100644 --- a/internal/mainHandler/service.go +++ b/internal/mainHandler/service.go @@ -2,14 +2,12 @@ package mainHandler import ( "context" - "fmt" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" "google.golang.org/protobuf/types/known/emptypb" pb "imageStorage/pkg/proto/imageStorage" "os" "path/filepath" - "strings" ) func (i *ImageHandler) UploadImage(ctx context.Context, req *pb.UploadMerchImageRequest) (*pb.UploadMerchImageResponse, error) { @@ -17,20 +15,18 @@ func (i *ImageHandler) UploadImage(ctx context.Context, req *pb.UploadMerchImage return nil, status.Errorf(codes.InvalidArgument, "image data is empty") } - path := i._makeMerchImagePath(req.UserUuid, req.MerchUuid) + path := i.utils.MerchImageVolumePath(req.UserUuid, req.MerchUuid) if err := os.MkdirAll(path, 0777); err != nil { return nil, err } - full := filepath.Join(path, "full.jpg") - thumbnail := filepath.Join(path, "thumbnail.jpg") - fullFile, err := os.Create(full) + fullFile, err := os.Create(filepath.Join(path, i.utils.FilenameFromType("full"))) if err != nil { return nil, err } defer fullFile.Close() - thumbnailFile, err := os.Create(thumbnail) + thumbnailFile, err := os.Create(filepath.Join(path, i.utils.FilenameFromType("thumbnail"))) if err != nil { return nil, err } @@ -41,38 +37,15 @@ func (i *ImageHandler) UploadImage(ctx context.Context, req *pb.UploadMerchImage } response := &pb.UploadMerchImageResponse{ - FullImage: i._makeMerchImageURL(req.UserUuid, req.MerchUuid, full), - Thumbnail: i._makeMerchImageURL(req.UserUuid, req.MerchUuid, thumbnail), + FullImage: i.utils.MerchImageURL(req.UserUuid, req.MerchUuid, "full"), + Thumbnail: i.utils.MerchImageURL(req.UserUuid, req.MerchUuid, "thumbnail"), } return response, nil } -func (i *ImageHandler) GetImage(ctx context.Context, req *pb.GetImageRequest) (*pb.GetImageResponse, error) { - path := i._makeMerchImagePath(req.UserUuid, req.MerchUuid) - unk := status.Error(codes.InvalidArgument, "unknown image type") - - switch req.ImgType { - case pb.ImageType_UNKNOWN: - return nil, unk - case pb.ImageType_FULL: - return &pb.GetImageResponse{ - Url: fmt.Sprintf("%s/%s", i.domain, filepath.Join(path, "full.jpg")), - Etag: "", - }, nil - case pb.ImageType_THUMBNAIL: - return &pb.GetImageResponse{ - Url: fmt.Sprintf("%s/%s", i.domain, filepath.Join(path, "thumbnail.jpg")), - Etag: "", - }, nil - - default: - return nil, unk - } -} - func (i *ImageHandler) DeleteImage(ctx context.Context, req *pb.DeleteImageRequest) (*emptypb.Empty, error) { - path := i._makeMerchImagePath(req.UserUuid, req.MerchUuid) + path := i.utils.MerchImageVolumePath(req.UserUuid, req.MerchUuid) entries, err := os.ReadDir(path) if err != nil { @@ -93,12 +66,3 @@ func (i *ImageHandler) DeleteImage(ctx context.Context, req *pb.DeleteImageReque return &emptypb.Empty{}, nil } - -func (i *ImageHandler) _makeMerchImagePath(u, m string) string { - return fmt.Sprintf("%s/merchImages/%s/%s", i.volume, u, m) -} - -func (i *ImageHandler) _makeMerchImageURL(u, m, n string) string { - d := strings.TrimSuffix(i.domain, "/") - return fmt.Sprintf("%s/merchImages/%s/%s/%s", d, u, m, n) -}