Skip to content

Part2 정종현 sprint6 #252

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 6 commits into
base: part2-정종현
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
5 changes: 5 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,11 @@ repositories {

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
//Spring Data JPA와 PostgreSQL을 위한 의존성을 추가하세요.
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
// implementation 'org.mapstruct:mapstruct:1.4.2.Final'
// annotationProcessor 'org.mapstruct:mapstruct-processor:1.4.2.Final'
runtimeOnly 'org.postgresql:postgresql:42.6.0'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
Expand Down
16 changes: 16 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
version: '3'
services:
postgres-db:
image: postgres:15
container_name: discodeit
environment:
POSTGRES_USER: discodeit_user
POSTGRES_PASSWORD: discodeit1234
POSTGRES_DB: discodeit
ports:
- "5432:5432"
volumes:
- db_data:/var/lib/postgresql/data

volumes:
db_data:
173 changes: 6 additions & 167 deletions src/main/java/com/sprint/mission/discodeit/DiscodeitApplication.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,175 +2,14 @@

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;

@EnableJpaAuditing
@SpringBootApplication
public class DiscodeitApplication {
public static void main(String[] args) {
SpringApplication.run(DiscodeitApplication.class, args);
//
// // 서비스 초기화
// UserService userService = context.getBean(UserService.class);
// ChannelService channelService = context.getBean(ChannelService.class);
// MessageService messageService = context.getBean(MessageService.class);
//
// // User Create Test
// try{
// UserCreateRequest userCreateRequest = new UserCreateRequest("woody", "[email protected]", "1234", Optional.empty());
// UserCreateResponse user = userService.create(userCreateRequest);
// System.out.println("SignUp User: " + user);
// }catch(Exception e){
// System.out.println(e.getMessage());
// }
//
// // 동일 이름으로 생성 Test
// try {
// UserCreateRequest userCreateRequest = new UserCreateRequest("woody", "[email protected]", "1234", Optional.empty());
// UserCreateResponse user = userService.create(userCreateRequest);
// System.out.println("user = " + user);
// }catch(Exception e){
// System.out.println("중복 이름 에러: " + e.getMessage());
// }
//
// // 동일 이메일 생성 Test
// try{
// UserCreateRequest userCreateRequest = new UserCreateRequest("buzz", "[email protected]", "1234", Optional.empty());
// UserCreateResponse user = userService.create(userCreateRequest);
// System.out.println("user = " + user);
// }catch(Exception e){
// System.out.println("중복 이메일 에러: " + e.getMessage());
// }
//
// // User find,findAll Test
// try{
// UserCreateRequest userCreateRequest = new UserCreateRequest("potato", "[email protected]", "1234", Optional.empty());
// UserCreateResponse user = userService.create(userCreateRequest);
//
// System.out.println("find user: " + userService.find(user.id()));
// System.out.println("findAll: " + userService.findAll());
//
// // 저장 안 된 유저 조회
// System.out.println(userService.find(UUID.randomUUID()));
// }catch(Exception e){
// System.out.println("없는 유저 조회: " + e.getMessage());
// }
//
// // User update/delete Test
// try{
// UserCreateRequest userCreateRequest = new UserCreateRequest("rex", "[email protected]", "1234", Optional.empty());
// UserCreateResponse user = userService.create(userCreateRequest);
// System.out.println("before update: " + userService.find(user.id()));
//
// userService.update(new UserUpdateRequest(user.id(), Optional.of("T-rex"), Optional.empty(), Optional.of("abcd"), Optional.empty()));
// System.out.println("after update: " + userService.find(user.id()));
//
// userService.delete(user.id());
// System.out.println("after delete find: " + userService.find(user.id()));
// }catch(Exception e){
// System.out.println("삭제 후 없는 유저 조회: " + e.getMessage());
// }
//
// // Test Setting
// User userA = new User("mike", "[email protected]", "1234");
// User userB = new User("troll", "[email protected]", "1234");
// List<User> users = List.of(userA, userB);
//
// // Channel(Private/Public) Create,Find Test
// try{
// // Create
// PrivateChannelCreateRequest privateChannelCreateRequest = new PrivateChannelCreateRequest(users);
// PrivateChannelCreateResponse privateChannel = channelService.createPrivate(privateChannelCreateRequest);
// System.out.println("\nprivateChannel: " + privateChannel);
//
// PublicChannelCreateRequest publicChannelCreateRequest = new PublicChannelCreateRequest("codeit", "codeit 채널입니다.");
// PublicChannelCreateResponse publicChannel = channelService.createPublic(publicChannelCreateRequest);
// System.out.println("publicChannel: " + publicChannel);
//
// // Find
// System.out.println("privateChannelFind: " + channelService.find(privateChannel.id()));
// System.out.println("publicChannelFind: " + channelService.find(publicChannel.id()));
//
// // FindAllByUserId
// List<ChannelFindResponse> findAllByUserId = channelService.findAllByUserId(userA.getId());
// System.out.println("FindAllByUserId: " + findAllByUserId);
//
// // 없는 id로 조회
// System.out.println(channelService.find(UUID.randomUUID()));
//
// }catch(Exception e) {
// System.out.println("없는 id로 조회: " + e.getMessage());
// }
//
// // Test Setting
// PublicChannelCreateRequest publicChannelCreateRequest = new PublicChannelCreateRequest("sprint", "sprint 채널입니다.");
// PublicChannelCreateResponse publicChannel = channelService.createPublic(publicChannelCreateRequest);
//
// // Update/Delete Test
// try{
// System.out.println("before update: " + publicChannel);
//
// ChannelUpdateDto updateDto = new ChannelUpdateDto(publicChannel.id(), "aws", "aws 채널입니다.");
// channelService.update(updateDto);
//
// System.out.println("after update: " + channelService.find(publicChannel.id()));
//
// channelService.delete(publicChannel.id());
// System.out.println(channelService.find(publicChannel.id()));
//
// }catch(Exception e){
// System.out.println("삭제 후 채널 조회: " + e.getMessage());
// }
//
// // Test Setting
// PublicChannelCreateRequest request = new PublicChannelCreateRequest("messageTest", "messageTest 채널입니다.");
// PublicChannelCreateResponse channel = channelService.createPublic(request);
//
// UserCreateRequest userCreateRequest = new UserCreateRequest(userA.getUsername(), userA.getEmail(), userA.getPassword(), Optional.empty());
// UserCreateResponse messageTestUserA = userService.create(userCreateRequest);
//
// userCreateRequest = new UserCreateRequest(userB.getUsername(), userB.getEmail(), userB.getPassword(), Optional.empty());
// UserCreateResponse messageTestUserB = userService.create(userCreateRequest);
//
// // Message Create, FindAllByChannelId Test
// try{
// MessageCreateRequest messageCreateRequest = new MessageCreateRequest(channel.id(), messageTestUserA.id(), "messageA Content");
// MessageCreateResponse messageA = messageService.create(messageCreateRequest);
// System.out.println("\nmessageA: " + messageA);
//
// messageCreateRequest = new MessageCreateRequest(channel.id(), messageTestUserB.id(), "messageB Content");
// MessageCreateResponse messageB = messageService.create(messageCreateRequest);
// System.out.println("messageB: " + messageB);
//
// List<Message> messages = messageService.findAllByChannelId(channel.id());
// System.out.println("messages: " + messages);
//
// System.out.println(messageService.findAllByChannelId(UUID.randomUUID()));
//
// } catch (Exception e) {
// System.out.println("없는 channelId로 조회: " + e.getMessage());
// }
//
// // Test setting
// MessageCreateRequest messageCreateRequest = new MessageCreateRequest(channel.id(), messageTestUserA.id(), "TestMessage Content");
// MessageCreateResponse TestMessage = messageService.create(messageCreateRequest);
//
// // Update/Delete Test
// try{
// System.out.println("before update: " + TestMessage);
//
// MessageUpdateDto messageUpdateDto = new MessageUpdateDto(TestMessage.id(), "Update Content");
// messageUpdateDto = messageService.update(messageUpdateDto);
// System.out.println("after update: " + messageUpdateDto);
//
// System.out.println("before delete: " + messageService.findAllByChannelId(channel.id()));
// messageService.delete(messageUpdateDto.id());
// System.out.println("after delete: " + messageService.findAllByChannelId(channel.id()));
//
// messageUpdateDto = new MessageUpdateDto(UUID.randomUUID(), "Update Content");
// System.out.println(messageService.update(messageUpdateDto));
//
// } catch (Exception e) {
// System.out.println("없는 id로 업데이트: " + e.getMessage());
// }
}

public static void main(String[] args) {
SpringApplication.run(DiscodeitApplication.class, args);

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@
//import com.sprint.mission.discodeit.repository.file.FileChannelRepository;
//import com.sprint.mission.discodeit.repository.file.FileMessageRepository;
//import com.sprint.mission.discodeit.repository.file.FileUserRepository;
//import com.sprint.mission.discodeit.service.basic.ChannelService;
//import com.sprint.mission.discodeit.service.basic.MessageService;
//import com.sprint.mission.discodeit.service.basic.UserService;
//import com.sprint.mission.discodeit.service.ChannelService;
//import com.sprint.mission.discodeit.service.MessageService;
//import com.sprint.mission.discodeit.service.UserService;
//import com.sprint.mission.discodeit.service.basic.BasicChannelService;
//import com.sprint.mission.discodeit.service.basic.BasicMessageService;
//import com.sprint.mission.discodeit.service.basic.BasicUserService;
Expand Down
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
Expand Up @@ -5,7 +5,7 @@
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.basic.ChannelService;
import com.sprint.mission.discodeit.service.ChannelService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,10 @@
import com.sprint.mission.discodeit.dto.request.MessageCreateRequest;
import com.sprint.mission.discodeit.dto.request.BinaryContentCreateRequest;
import com.sprint.mission.discodeit.entity.Message;
import com.sprint.mission.discodeit.service.basic.MessageService;
import com.sprint.mission.discodeit.service.MessageService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.enums.ParameterIn;
import io.swagger.v3.oas.annotations.media.ArraySchema;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.ExampleObject;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import com.sprint.mission.discodeit.dto.request.UserUpdateRequest;
import com.sprint.mission.discodeit.entity.User;
import com.sprint.mission.discodeit.entity.UserStatus;
import com.sprint.mission.discodeit.service.basic.UserService;
import com.sprint.mission.discodeit.service.UserService;
import com.sprint.mission.discodeit.service.basic.UserStatusService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.sprint.mission.discodeit.dto.data;

import java.util.UUID;

public record BinaryContentDto(
UUID id,
String fileName,
Long size,
String contentType
) {

}
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,12 @@
import java.util.UUID;

public record ChannelDto(
UUID id,
ChannelType type,
String name,
String description,
List<UUID> participantIds,
Instant lastMessageAt
UUID id,
ChannelType type,
String name,
String description,
List<UserDto> participantIds,
Instant lastMessageAt
) {

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.sprint.mission.discodeit.dto.data;

import java.time.Instant;
import java.util.List;
import java.util.UUID;

public record MessageDto(
UUID id,
Instant createdAt,
Instant updatedAt,
String content,
UUID channelId,
UserDto author,
List<BinaryContentDto> attachments
) {

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.sprint.mission.discodeit.dto.data;

import java.time.Instant;
import java.util.UUID;

public record ReadStatusDto(
UUID id,
UUID userId,
UUID channelId,
Instant lastReadAt
) {

}
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
package com.sprint.mission.discodeit.dto.data;

import com.sprint.mission.discodeit.entity.BinaryContent;
import java.time.Instant;
import java.util.UUID;

public record UserDto(
UUID id,
Instant createdAt,
Instant updatedAt,
String username,
String email,
UUID profileId,
BinaryContentDto profile,
Boolean online
) {

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.sprint.mission.discodeit.dto.data;

import java.time.Instant;
import java.util.UUID;

public record UserStatusDto(
UUID id,
UUID userId,
Instant lastActiveAt
) {

}
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
package com.sprint.mission.discodeit.dto.request;

import java.util.UUID;

public record BinaryContentCreateRequest(
String fileName,
String contentType,
byte[] bytes
) {}
String fileName,
String contentType,
byte[] bytes
) {

}
Loading