Skip to content

Commit

Permalink
Merge pull request #104 from LikeKNU/develop
Browse files Browse the repository at this point in the history
์‹๋‹จ ๋ฉ”๋‰ด ์ข‹์•„์š” ๋ฐ ์‹ซ์–ด์š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€
  • Loading branch information
jcw1031 authored Mar 30, 2024
2 parents 7d1e940 + 0dea5aa commit 0de22a6
Show file tree
Hide file tree
Showing 54 changed files with 498 additions and 489 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
import ac.knu.likeknu.controller.dto.announcement.AnnouncementListResponse;
import ac.knu.likeknu.controller.dto.base.PageDto;
import ac.knu.likeknu.controller.dto.base.PageResponseDto;
import ac.knu.likeknu.domain.value.Campus;
import ac.knu.likeknu.domain.value.Category;
import ac.knu.likeknu.domain.constants.Campus;
import ac.knu.likeknu.domain.constants.Category;
import ac.knu.likeknu.logging.domain.value.LogType;
import ac.knu.likeknu.logging.service.LoggingService;
import ac.knu.likeknu.service.AnnouncementService;
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/ac/knu/likeknu/controller/BusController.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
import ac.knu.likeknu.controller.dto.citybus.CityBusesResponse;
import ac.knu.likeknu.controller.dto.shuttlebus.ShuttleBusesArrivalTimeResponse;
import ac.knu.likeknu.controller.dto.shuttlebus.ShuttleListResponse;
import ac.knu.likeknu.domain.value.Campus;
import ac.knu.likeknu.domain.value.RouteType;
import ac.knu.likeknu.domain.constants.Campus;
import ac.knu.likeknu.domain.constants.RouteType;
import ac.knu.likeknu.logging.domain.value.LogType;
import ac.knu.likeknu.logging.service.LoggingService;
import ac.knu.likeknu.service.CityBusService;
Expand Down
10 changes: 5 additions & 5 deletions src/main/java/ac/knu/likeknu/controller/MainController.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package ac.knu.likeknu.controller;

import ac.knu.likeknu.controller.dto.base.ResponseDto;
import ac.knu.likeknu.controller.dto.main.MainAnnouncementsResponse;
import ac.knu.likeknu.controller.dto.main.MainCityBusResponse;
import ac.knu.likeknu.controller.dto.main.MainMenuResponse;
import ac.knu.likeknu.controller.dto.main.MainScheduleResponse;
import ac.knu.likeknu.controller.dto.announcement.MainAnnouncementsResponse;
import ac.knu.likeknu.controller.dto.citybus.MainCityBusResponse;
import ac.knu.likeknu.controller.dto.menu.MainMenuResponse;
import ac.knu.likeknu.controller.dto.schedule.MainScheduleResponse;
import ac.knu.likeknu.domain.MainHeaderMessage;
import ac.knu.likeknu.domain.value.Campus;
import ac.knu.likeknu.domain.constants.Campus;
import ac.knu.likeknu.exception.BusinessException;
import ac.knu.likeknu.repository.MainHeaderMessageRepository;
import ac.knu.likeknu.service.CityBusService;
Expand Down
41 changes: 33 additions & 8 deletions src/main/java/ac/knu/likeknu/controller/MenuController.java
Original file line number Diff line number Diff line change
@@ -1,36 +1,61 @@
package ac.knu.likeknu.controller;

import ac.knu.likeknu.controller.dto.base.ResponseDto;
import ac.knu.likeknu.controller.dto.menu.MenuResponse;
import ac.knu.likeknu.domain.value.Campus;
import ac.knu.likeknu.controller.dto.menu.CafeteriaMealListResponse;
import ac.knu.likeknu.controller.dto.menu.MenuThumbsRequest;
import ac.knu.likeknu.controller.dto.menu.MenuThumbsStatusResponse;
import ac.knu.likeknu.domain.constants.Campus;
import ac.knu.likeknu.exception.BusinessException;
import ac.knu.likeknu.service.MenuService;
import ac.knu.likeknu.service.ThumbsService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PutMapping;
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;

import java.time.LocalDate;
import java.util.List;

@RestController
@RequestMapping("/api/menu")
@RequestMapping("/api/menus")
@RequiredArgsConstructor
public class MenuController {

private final MenuService menuService;
private final ThumbsService thumbsService;

@GetMapping
public ResponseDto<List<MenuResponse>> getMenuByCampus(
public ResponseDto<List<CafeteriaMealListResponse>> getMenuByCampus(
@RequestParam(name = "campus") Campus campus,
@RequestParam(name = "date", defaultValue = "#{T(java.time.LocalDate).now()}") LocalDate date
@RequestParam(name = "cafeteriaName") String cafeteriaName
) {
if (campus.equals(Campus.ALL)) {
throw new BusinessException("Invalid campus");
}

List<MenuResponse> menuResponsesByCampus = menuService.getMenuResponsesByCampus(campus, date);
return ResponseDto.of(menuResponsesByCampus);
List<CafeteriaMealListResponse> cafeteriaMeals = menuService.getCafeteriaMeals(campus, cafeteriaName);
return ResponseDto.of(cafeteriaMeals);
}

@GetMapping("/{menuId}/thumbs")
public ResponseDto<MenuThumbsStatusResponse> getThumbsStatus(
@PathVariable(name = "menuId") String menuId,
@RequestParam(name = "deviceId") String deviceId
) {
MenuThumbsStatusResponse menuThumbsStatus = thumbsService.getMenuThumbsStatus(menuId, deviceId);
return ResponseDto.of(menuThumbsStatus);
}

@PutMapping("/{menuId}/thumbs")
public ResponseDto<MenuThumbsStatusResponse> updateThumbs(
@PathVariable(name = "menuId") String menuId,
@RequestBody MenuThumbsRequest menuThumbsRequest
) {
MenuThumbsStatusResponse updatedMenuThumbsStatus =
thumbsService.updateThumbs(menuId, menuThumbsRequest.deviceId(), menuThumbsRequest.thumbsType());
return ResponseDto.of(updatedMenuThumbsStatus);
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ac.knu.likeknu.controller.dto.main;
package ac.knu.likeknu.controller.dto.announcement;

import ac.knu.likeknu.domain.Announcement;
import lombok.Builder;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ac.knu.likeknu.controller.dto.main;
package ac.knu.likeknu.controller.dto.citybus;

import ac.knu.likeknu.domain.CityBus;
import ac.knu.likeknu.domain.Route;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package ac.knu.likeknu.controller.dto.device.response;

import ac.knu.likeknu.domain.value.Tag;
import ac.knu.likeknu.domain.constants.Tag;

public record SubscribeTagListResponse(String tag) {

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package ac.knu.likeknu.controller.dto.menu;

import ac.knu.likeknu.domain.Cafeteria;

import java.time.LocalDate;
import java.util.List;

public record CafeteriaMealListResponse(String cafeteriaId, String cafeteriaName, LocalDate date,
List<MealListResponse> meals) {

public static CafeteriaMealListResponse of(Cafeteria cafeteria, LocalDate date,
List<MealListResponse> meals) {
return new CafeteriaMealListResponse(cafeteria.getId(), cafeteria.getCafeteriaName(), date, meals);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package ac.knu.likeknu.controller.dto.menu;

import ac.knu.likeknu.domain.Cafeteria;
import ac.knu.likeknu.domain.constants.MealType;
import lombok.Builder;

@Builder
public record MainMenuResponse(String cafeteriaId, String cafeteriaName, String mealType, String menus) {

public static MainMenuResponse of(Cafeteria cafeteria, String menu) {
return MainMenuResponse.builder()
.cafeteriaId(cafeteria.getId())
.cafeteriaName(cafeteria.getCafeteriaName())
.mealType(MealType.now().getKorean())
.menus(menu)
.build();
}

public static MainMenuResponse empty(Cafeteria cafeteria) {
return MainMenuResponse.builder()
.cafeteriaId(cafeteria.getId())
.cafeteriaName(cafeteria.getCafeteriaName())
.mealType(MealType.now().getKorean())
.build();
}
}
59 changes: 0 additions & 59 deletions src/main/java/ac/knu/likeknu/controller/dto/menu/MealListDto.java

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package ac.knu.likeknu.controller.dto.menu;

import ac.knu.likeknu.domain.Cafeteria;
import ac.knu.likeknu.domain.Menu;
import ac.knu.likeknu.domain.constants.MealType;
import lombok.Builder;

@Builder
public record MealListResponse(String menuId, String mealType, String operatingTime, String menus) {

public static MealListResponse of(Menu menu, Cafeteria cafeteria) {
MealType mealType = menu.getMealType();
String operatingTime = cafeteria.getOperatingTime(mealType, menu.getMenuDate());
return new MealListResponse(menu.getId(), mealType.getKorean(), operatingTime, menu.getMenus());
}

public static MealListResponse empty(MealType mealType, String operatingTime) {
return MealListResponse.builder()
.mealType(mealType.getKorean())
.operatingTime(operatingTime)
.build();
}
}
19 changes: 0 additions & 19 deletions src/main/java/ac/knu/likeknu/controller/dto/menu/MenuListDto.java

This file was deleted.

40 changes: 0 additions & 40 deletions src/main/java/ac/knu/likeknu/controller/dto/menu/MenuResponse.java

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package ac.knu.likeknu.controller.dto.menu;

import ac.knu.likeknu.domain.constants.ThumbsType;

public record MenuThumbsRequest(String deviceId, ThumbsType thumbsType) {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package ac.knu.likeknu.controller.dto.menu;

public record MenuThumbsStatusResponse(int thumbsUp, int thumbsDown, String ownThumbs) {
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ac.knu.likeknu.controller.dto.main;
package ac.knu.likeknu.controller.dto.schedule;

import ac.knu.likeknu.domain.AcademicCalendar;
import lombok.Builder;
Expand Down
6 changes: 3 additions & 3 deletions src/main/java/ac/knu/likeknu/domain/Announcement.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package ac.knu.likeknu.domain;

import ac.knu.likeknu.domain.value.Campus;
import ac.knu.likeknu.domain.value.Category;
import ac.knu.likeknu.domain.value.Tag;
import ac.knu.likeknu.domain.constants.Campus;
import ac.knu.likeknu.domain.constants.Category;
import ac.knu.likeknu.domain.constants.Tag;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
Expand Down
Loading

0 comments on commit 0de22a6

Please sign in to comment.