StorageController.java

package com.learning.yasminishop.storage;

import com.learning.yasminishop.common.constant.StorageFolder;
import com.learning.yasminishop.common.dto.APIResponse;
import com.learning.yasminishop.storage.dto.response.StorageResponse;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

@RestController
@RequestMapping("/storage")
@RequiredArgsConstructor
@Slf4j
public class StorageController {
    private final StorageService storageService;


    @PostMapping
    @ResponseStatus(HttpStatus.CREATED)
    public APIResponse<StorageResponse> saveProductFile(@RequestParam("file") MultipartFile file) {
        log.info("Saving file: {}", file.getOriginalFilename());
        StorageResponse storageResponse = storageService.saveFile(file, StorageFolder.PRODUCTS);
        return APIResponse.<StorageResponse>builder()
                .result(storageResponse)
                .build();
    }

}