Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package DiffLens.back_end.domain.library.controller;

import DiffLens.back_end.domain.library.dto.LibraryResponseDTO;
import DiffLens.back_end.global.responses.exception.ApiResponse;
import io.swagger.v3.oas.annotations.Operation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/libraries")
@RequiredArgsConstructor
public class LibraryController {

@GetMapping
@Operation(summary = "라이브러리 목록 조회 ( 미구현 )")
public ApiResponse<LibraryResponseDTO.ListResult> libraryList( /* 파라미터 추가 필요 */ ){
LibraryResponseDTO.ListResult result = new LibraryResponseDTO.ListResult();
return ApiResponse.onSuccess(result);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
package DiffLens.back_end.domain.library.dto;

import DiffLens.back_end.global.dto.ResponsePageDTO;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

import java.util.List;

public class LibraryResponseDTO {

@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class ListResult{

private List<Panel> panels;

@JsonProperty("page_info")
private ResponsePageDTO.PageInfo pageInfo;

@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class Panel {

@JsonProperty("search_id")
private Long searchId;

private String name;

@JsonProperty("total_count")
private Integer totalCount;

@JsonProperty("created_at")
private String createdAt;

@JsonProperty("data_type")
private String dataType;

private List<Tag> tags;

@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class Tag {
private String key;
private String value;
}
}

}

}
Original file line number Diff line number Diff line change
Expand Up @@ -22,21 +22,64 @@ public class AuthController {
private final AuthService authService;

@PostMapping("/signup/local")
@Operation(summary = "회원가입(로컬)")
@Operation(summary = "회원가입 ( 로컬 )",
description = """

## 개요
일반 회원가입 API입니다.

## Request Body
회원가입 정보 담아서 요청

## 응답
로그인 성공 여부를 반환합니다.

""")
public ApiResponse<AuthResponseDTO.SignUpDto> signUp(@RequestBody @Valid AuthRequestDTO.SignUpDto request){
AuthResponseDTO.SignUpDto signUpDto = authService.signUp(request);
return ApiResponse.onSuccess(signUpDto);
}

@PostMapping("/login/local")
@Operation(summary = "로그인(로컬)")
@Operation(summary = "로그인 ( 로컬 )",
description = """

## 개요
일반 회원가입 API입니다.

## Request Body
- 일반 회원가입에 담아 요청한 email과 paassword 를 담아 요청하세요.
- loginType : GENERAL

## 응답
인증에 필요한 토큰정보를 포함합니다.

""")
public ApiResponse<AuthResponseDTO.LoginDto> localLogin(@RequestBody @Valid AuthRequestDTO.LoginDto request){
AuthResponseDTO.LoginDto login = authService.login(request);
return ApiResponse.onSuccess(login);
}

@PostMapping("/login/google")
@Operation(summary = "로그인(소셜)")
@Operation(summary = "로그인 ( 구글 )",
description = """

## 개요
구글 로그인 API 입니다.

## Request Body
- code : 구글 로그인 진행 후 리다이렉트 되는 주소의 파라미터 중 code값
- loginType : GOOGLE

## 응답
인증에 필요한 토큰정보를 포함합니다.

## 기타
- 구글 로그인 링크는 노션 API 명세서의 구글 로그인 페이지에 첨부해놓았습니다.
- !! 추후 해당 API는 기획에 따라 구글 전용이 아닌 소셜로그인 통합으로 변경될 수 있습니다. ( google -> social )


""")
public ApiResponse<AuthResponseDTO.LoginDto> googleLogin(@RequestBody @Valid AuthRequestDTO.SocialLoginDto request){
AuthResponseDTO.LoginDto login = authService.login(request);
return ApiResponse.onSuccess(login);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package DiffLens.back_end.domain.members.dto.auth;

import DiffLens.back_end.domain.members.enums.LoginType;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
Expand All @@ -16,18 +17,22 @@ public class AuthRequestDTO {
@AllArgsConstructor
public static class SignUpDto {

@Schema(description = "email 형식으로 입력해야 합니다.")
@NotBlank(message = "이메일은 필수 입력 항목입니다.")
@Email(message = "올바른 이메일 형식이 아닙니다.")
private String email;

@Schema(description = "이름. 최대 20글자")
@NotBlank(message = "이름은 필수 입력 항목입니다.")
@Size(max = 20, message = "이름은 20자 이하로 작성해주세요.")
private String name;

@Schema(description = "비밀번호. 8~20 글자")
@NotBlank(message = "비밀번호는 필수 입력 항목입니다.")
@Size(min = 8, max = 20, message = "비밀번호는 8자 이상 20자 이하로 입력해주세요.")
private String password;

@Schema(description = "로그인 유형")
@NotNull(message = "로그인 타입은 필수 항목입니다.")
private LoginType loginType;

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package DiffLens.back_end.domain.panel.controller;

import DiffLens.back_end.domain.panel.dto.PanelRequestDTO;
import DiffLens.back_end.domain.panel.dto.PanelResponseDTO;
import DiffLens.back_end.global.responses.exception.ApiResponse;
import io.swagger.v3.oas.annotations.Operation;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/panels")
@RequiredArgsConstructor
public class PanelController {

@GetMapping("/{panelId}")
@Operation(summary = "특정 패널 상세 조회 ( 미구현 )")
public ApiResponse<PanelResponseDTO.PanelDetails> details(@PathVariable("panelId") Long panelId) {
PanelResponseDTO.PanelDetails result = new PanelResponseDTO.PanelDetails();
return ApiResponse.onSuccess(result);
}

@PostMapping("/compare")
@Operation(summary = "패널 그룹 비교 분석 ( 미구현 ) ")
public ApiResponse<PanelResponseDTO.GroupCompare> groupCompare(@RequestBody @Valid PanelRequestDTO.GroupAnal request) {
PanelResponseDTO.GroupCompare result = new PanelResponseDTO.GroupCompare();
return ApiResponse.onSuccess(result);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package DiffLens.back_end.domain.panel.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
import lombok.Setter;

import java.util.List;

public class PanelRequestDTO {

@Setter
@Getter
public static class GroupAnal{

@NotNull
@JsonProperty("library_a_id")
private Long libraryAId;

@NotNull
@JsonProperty("library_b_id")
private Long libraryBId;

@JsonProperty("comparison_metrics")
private List<String> comparisonMetrics;

}

}
Loading