Skip to content

Commit

Permalink
[관리자] 작가 포트폴리오 이미지 추가,조회 (#85)
Browse files Browse the repository at this point in the history
* feat: 관리자 라이센스 이미지 추가

* feat: 관리자 라이센스 이미지 조회

* chore: Make JacksonConfig from feign to transmit dto and MultipartFile
  • Loading branch information
parkcoldroad authored Oct 4, 2023
1 parent f9b9895 commit d2adcfc
Show file tree
Hide file tree
Showing 10 changed files with 199 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -169,4 +169,13 @@ void createProductIntroductionByAdmin(@RequestHeader("LB-Role") String role, @Pa
@ResponseStatus(HttpStatus.NO_CONTENT)
void modifyProductIntroductionByAdmin(@RequestHeader("LB-Role") String role, @PathVariable String productId,
@RequestPart(value = "images",required = false) MultipartFile productIntroductionImageFile);
/** 라이센스 이미지 추가*/
@PostMapping(value = "/admin/licenseImage", consumes = "multipart/form-data")
@ResponseStatus(HttpStatus.CREATED)
void createLicenseImageByAdmin(@RequestHeader("LB-Role") String role, @RequestPart("dto") String dtoJson,
@RequestPart(value = "image") MultipartFile productIntroductionImageFile);
/** 라이센스 이미지 조회*/
@GetMapping("/admin/licenseImage")
@ResponseStatus(HttpStatus.OK)
List<LicenseImageRetrieveDto> retrieveLicenseImageByAdmin(@RequestHeader("LB-Role")String role);
}
20 changes: 20 additions & 0 deletions src/main/java/com/liberty52/admin/global/config/JacksonConfig.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.liberty52.admin.global.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;

@Configuration
public class JacksonConfig {

@Bean
public ObjectMapper objectMapper() {
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JavaTimeModule());
mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
return mapper;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.liberty52.admin.service.applicationservice;

import java.io.IOException;

import org.springframework.web.multipart.MultipartFile;

import com.liberty52.admin.service.controller.dto.LicenseImageCreateDto;

public interface LicenseImageCreateService {
void createLicenseImageByAdmin(String role, LicenseImageCreateDto dto,
MultipartFile productIntroductionImageFile) throws IOException;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.liberty52.admin.service.applicationservice;

import java.util.List;

import com.liberty52.admin.service.controller.dto.LicenseImageRetrieveDto;

public interface LicenseImageRetrieveService {
List<LicenseImageRetrieveDto> retrieveLicenseImageByAdmin(String role);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.liberty52.admin.service.applicationservice.impl;

import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.liberty52.admin.global.adapter.feign.ProductServiceClient;
import com.liberty52.admin.service.applicationservice.LicenseImageCreateService;
import com.liberty52.admin.service.controller.dto.LicenseImageCreateDto;

import lombok.RequiredArgsConstructor;

@Service
@RequiredArgsConstructor
public class LicenseImageCreateServiceImpl implements LicenseImageCreateService {
private final ProductServiceClient productServiceClient;
private final ObjectMapper objectMapper;

@Override
public void createLicenseImageByAdmin(String role, LicenseImageCreateDto dto,
MultipartFile productIntroductionImageFile) throws JsonProcessingException {
String dtoJson = objectMapper.writeValueAsString(dto);
productServiceClient.createLicenseImageByAdmin(role, dtoJson, productIntroductionImageFile);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.liberty52.admin.service.applicationservice.impl;

import java.util.List;

import org.springframework.stereotype.Service;

import com.liberty52.admin.global.adapter.feign.ProductServiceClient;
import com.liberty52.admin.service.applicationservice.LicenseImageRetrieveService;
import com.liberty52.admin.service.controller.dto.LicenseImageRetrieveDto;

import lombok.RequiredArgsConstructor;

@Service
@RequiredArgsConstructor
public class LicenseImageRetrieveServiceImpl implements LicenseImageRetrieveService {
private final ProductServiceClient productServiceClient;
@Override
public List<LicenseImageRetrieveDto> retrieveLicenseImageByAdmin(String role) {
return productServiceClient.retrieveLicenseImageByAdmin(role);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package com.liberty52.admin.service.controller;

import java.io.IOException;

import org.springframework.http.HttpStatus;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import com.liberty52.admin.service.applicationservice.LicenseImageCreateService;
import com.liberty52.admin.service.controller.dto.LicenseImageCreateDto;

import lombok.RequiredArgsConstructor;

@RestController
@RequiredArgsConstructor
public class LicenseImageCreateController {
private final LicenseImageCreateService licenseImageCreateService;

@PostMapping("/licenseImage")
@ResponseStatus(HttpStatus.CREATED)
public void createLicenseImageByAdmin(@RequestHeader("LB-Role") String role,
@Validated @RequestPart("dto") LicenseImageCreateDto dto,
@RequestPart(value = "image") MultipartFile productIntroductionImageFile) throws IOException {
licenseImageCreateService.createLicenseImageByAdmin(role, dto, productIntroductionImageFile);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.liberty52.admin.service.controller;

import java.util.List;

import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;

import com.liberty52.admin.service.applicationservice.LicenseImageRetrieveService;
import com.liberty52.admin.service.controller.dto.LicenseImageRetrieveDto;

import lombok.RequiredArgsConstructor;

@RestController
@RequiredArgsConstructor
public class LicenseImageRetrieveController {
private final LicenseImageRetrieveService licenseImageRetrieveService;

@GetMapping("/licenseImage")
@ResponseStatus(HttpStatus.OK)
public List<LicenseImageRetrieveDto> retrieveLicenseImageByAdmin(@RequestHeader("LB-Role") String role) {
return licenseImageRetrieveService.retrieveLicenseImageByAdmin(role);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.liberty52.admin.service.controller.dto;

import java.time.LocalDate;

import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@NoArgsConstructor
public class LicenseImageCreateDto {
@NotBlank
private String artistName;
@NotBlank
private String artName;
@NotNull
private LocalDate startDate;
@NotNull
private LocalDate endDate;
@Min(0)
private Integer stock;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.liberty52.admin.service.controller.dto;

import java.time.LocalDate;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@NoArgsConstructor
@AllArgsConstructor
public class LicenseImageRetrieveDto {
private String id;
private String artistName;
private String artName;
private LocalDate startDate;
private LocalDate endDate;
private String licenseImageUrl;
private Integer stock;

}

0 comments on commit d2adcfc

Please sign in to comment.