Skip to content

[김민준] sprint7 #209

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: 김민준
Choose a base branch
from
Open
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
29 changes: 29 additions & 0 deletions admin/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
plugins {
id 'java'
id 'org.springframework.boot'
id 'io.spring.dependency-management'
}

group = 'com.sprint.mission'
version = '0.0.1-SNAPSHOT'

java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}

repositories {
mavenCentral()
maven { url 'https://repo.spring.io/release' } // ✅ 추가 필요
}

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'de.codecentric:spring-boot-admin-starter-server:3.2.5'
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

3.2.5 버전은, 존재 안하는 버전입니다!
아래 링크 참조하여 주세요!
https://mvnrepository.com/artifact/de.codecentric/spring-boot-admin-starter-server


compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'

testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
14 changes: 14 additions & 0 deletions admin/src/main/java/com/sprint/mission/admin/AdminApplication.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.sprint.mission.admin;

import de.codecentric.boot.admin.server.config.EnableAdminServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@EnableAdminServer
public class AdminApplication {

public static void main(String[] args) {
SpringApplication.run(AdminApplication.class, args);
}
}
5 changes: 5 additions & 0 deletions admin/src/main/resources/application.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
spring:
application:
name: admin
server:
port: 9090
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.sprint.mission.admin;

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class AdminApplicationTests {

@Test
void contextLoads() {
}
}
55 changes: 31 additions & 24 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,37 +1,44 @@
buildscript {
ext {
springBootVersion = '3.4.0'
springDependencyVersion = '1.1.6'
mapstructVersion = '1.6.3'
springdocVersion = '2.8.4'
}
}

plugins {
id 'java'
id 'org.springframework.boot' version '3.4.0'
id 'io.spring.dependency-management' version '1.1.6'
id 'java' // 기본 선언
id 'org.springframework.boot' version "${springBootVersion}" apply false
id 'io.spring.dependency-management' version "${springDependencyVersion}" apply false
}

group = 'com.sprint.mission'
version = '0.0.1-SNAPSHOT'
allprojects {
group = 'com.sprint.mission'
version = '0.0.1-SNAPSHOT'

java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
repositories {
mavenCentral()
}
}

configurations {
compileOnly {
extendsFrom annotationProcessor
subprojects {
apply plugin: 'java'
apply plugin: 'io.spring.dependency-management'

java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}
}

repositories {
mavenCentral()
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
}

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.4'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
implementation 'org.springframework.boot:spring-boot-starter-validation'
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

빌드가 안됩니다 ㅠㅠ,,
아래 기존 의존성들이 필요합니다!
수정되기 전 구성에서 'org.springframework.boot:spring-boot-starter-validation' 만 추가하시는게 더 안정적인 설정으로 보입니다!

	implementation 'org.springframework.boot:spring-boot-starter-web'
	implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.4'
	compileOnly 'org.projectlombok:lombok'
	annotationProcessor 'org.projectlombok:lombok'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
	testRuntimeOnly 'org.junit.platform:junit-platform-launcher'

}

tasks.named('test') {
useJUnitPlatform()
}
3 changes: 3 additions & 0 deletions settings.gradle
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
rootProject.name = 'discodeit'

rootProject.name = '3-sprint-mission'
include 'admin'
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,10 @@

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;

@SpringBootApplication
@ComponentScan(basePackages = {
"com.sprint.mission.discodeit.controller",
"com.sprint.mission.discodeit.service",
"com.sprint.mission.discodeit.repository.jcf",
"com.sprint.mission.discodeit.repository.file"
})
public class DiscodeitApplication {

public static void main(String[] args) {
SpringApplication.run(DiscodeitApplication.class, args);
}
Expand Down
17 changes: 17 additions & 0 deletions src/main/java/com/sprint/mission/discodeit/aop/LoggingAspect.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

@Slf4j
@Aspect
@Component
public class LoggingAspect {

@Around("execution(* com.sprint.mission.discodeit.controller..*(..)) || execution(* com.sprint.mission.discodeit.service..*(..))")
public Object logExecution(ProceedingJoinPoint joinPoint) throws Throwable {
String methodName = joinPoint.getSignature().toShortString();
log.info("▶️ Start: {}", methodName);
Object result = joinPoint.proceed();
log.info("✅ End: {}", methodName);
return result;
}
}
10 changes: 10 additions & 0 deletions src/main/java/com/sprint/mission/discodeit/config/AppConfig.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.sprint.mission.discodeit.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;

@Configuration
@EnableJpaAuditing
public class AppConfig {

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import org.springframework.context.annotation.Configuration;

@Configuration
@EnableJpaAuditing
public class JpaAuditingConfig {}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

private final MDCLoggingInterceptor mdcLoggingInterceptor;

public WebMvcConfig(MDCLoggingInterceptor mdcLoggingInterceptor) {
this.mdcLoggingInterceptor = mdcLoggingInterceptor;
}

@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(mdcLoggingInterceptor);
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.sprint.mission.discodeit.controller;

import com.sprint.mission.discodeit.controller.api.AuthApi;
import com.sprint.mission.discodeit.dto.data.UserDto;
import com.sprint.mission.discodeit.dto.request.LoginRequest;
import com.sprint.mission.discodeit.entity.User;
import com.sprint.mission.discodeit.service.AuthService;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus;
Expand All @@ -20,8 +20,8 @@ public class AuthController implements AuthApi {
private final AuthService authService;

@PostMapping(path = "login")
public ResponseEntity<User> login(@RequestBody LoginRequest loginRequest) {
User user = authService.login(loginRequest);
public ResponseEntity<UserDto> login(@RequestBody LoginRequest loginRequest) {
UserDto user = authService.login(loginRequest);
return ResponseEntity
.status(HttpStatus.OK)
.body(user);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,37 +1,50 @@
package com.sprint.mission.discodeit.controller;

import com.sprint.mission.discodeit.controller.api.BinaryContentApi;
import com.sprint.mission.discodeit.entity.BinaryContent;
import com.sprint.mission.discodeit.dto.data.BinaryContentDto;
import com.sprint.mission.discodeit.service.BinaryContentService;
import com.sprint.mission.discodeit.storage.BinaryContentStorage;
import java.util.List;
import java.util.UUID;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.UUID;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RequiredArgsConstructor
@RestController
@RequestMapping("/api/binaryContents")
public class BinaryContentController implements BinaryContentApi {

private final BinaryContentService binaryContentService;
private final BinaryContentStorage binaryContentStorage;

@GetMapping(path = "{binaryContentId}")
public ResponseEntity<BinaryContent> find(@PathVariable("binaryContentId") UUID binaryContentId) {
BinaryContent binaryContent = binaryContentService.find(binaryContentId);
public ResponseEntity<BinaryContentDto> find(
@PathVariable("binaryContentId") UUID binaryContentId) {
BinaryContentDto binaryContent = binaryContentService.find(binaryContentId);
return ResponseEntity
.status(HttpStatus.OK)
.body(binaryContent);
}

@GetMapping
public ResponseEntity<List<BinaryContent>> findAllByIdIn(
public ResponseEntity<List<BinaryContentDto>> findAllByIdIn(
@RequestParam("binaryContentIds") List<UUID> binaryContentIds) {
List<BinaryContent> binaryContents = binaryContentService.findAllByIdIn(binaryContentIds);
List<BinaryContentDto> binaryContents = binaryContentService.findAllByIdIn(binaryContentIds);
return ResponseEntity
.status(HttpStatus.OK)
.body(binaryContents);
}

@GetMapping(path = "{binaryContentId}/download")
public ResponseEntity<?> download(
@PathVariable("binaryContentId") UUID binaryContentId) {
BinaryContentDto binaryContentDto = binaryContentService.find(binaryContentId);
return binaryContentStorage.download(binaryContentDto);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,21 @@
import com.sprint.mission.discodeit.dto.request.PrivateChannelCreateRequest;
import com.sprint.mission.discodeit.dto.request.PublicChannelCreateRequest;
import com.sprint.mission.discodeit.dto.request.PublicChannelUpdateRequest;
import com.sprint.mission.discodeit.entity.Channel;
import com.sprint.mission.discodeit.service.ChannelService;
import java.util.List;
import java.util.UUID;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.UUID;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PatchMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RequiredArgsConstructor
@RestController
Expand All @@ -23,28 +29,28 @@ public class ChannelController implements ChannelApi {
private final ChannelService channelService;

@PostMapping(path = "public")
public ResponseEntity<Channel> create(@RequestBody PublicChannelCreateRequest request) {
Channel createdChannel = channelService.create(request);
public ResponseEntity<ChannelDto> create(@RequestBody PublicChannelCreateRequest request) {
ChannelDto createdChannel = channelService.create(request);
return ResponseEntity
.status(HttpStatus.CREATED)
.body(createdChannel);
}

@PostMapping(path = "private")
public ResponseEntity<Channel> create(@RequestBody PrivateChannelCreateRequest request) {
Channel createdChannel = channelService.create(request);
public ResponseEntity<ChannelDto> create(@RequestBody PrivateChannelCreateRequest request) {
ChannelDto createdChannel = channelService.create(request);
return ResponseEntity
.status(HttpStatus.CREATED)
.body(createdChannel);
}

@PatchMapping(path = "{channelId}")
public ResponseEntity<Channel> update(@PathVariable("channelId") UUID channelId,
public ResponseEntity<ChannelDto> update(@PathVariable("channelId") UUID channelId,
@RequestBody PublicChannelUpdateRequest request) {
Channel udpatedChannel = channelService.update(channelId, request);
ChannelDto updatedChannel = channelService.update(channelId, request);
return ResponseEntity
.status(HttpStatus.OK)
.body(udpatedChannel);
.body(updatedChannel);
}

@DeleteMapping(path = "{channelId}")
Expand Down
Loading