-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
7 changed files
with
83 additions
and
13 deletions.
There are no files selected for viewing
14 changes: 10 additions & 4 deletions
14
src/main/java/com/hobak/happinessql/domain/activity/api/ActivityController.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,24 +1,30 @@ | ||
package com.hobak.happinessql.domain.activity.api; | ||
|
||
import com.hobak.happinessql.domain.activity.application.ActivityCreateService; | ||
import com.hobak.happinessql.domain.activity.dto.ActivityCreateRequestDto; | ||
import com.hobak.happinessql.domain.activity.dto.ActivityCreateResponseDto; | ||
import com.hobak.happinessql.domain.activity.dto.ActivityListResponseDto; | ||
import com.hobak.happinessql.domain.activity.application.ActivityListService; | ||
import com.hobak.happinessql.global.response.DataResponseDto; | ||
import lombok.RequiredArgsConstructor; | ||
import org.springframework.web.bind.annotation.GetMapping; | ||
import org.springframework.web.bind.annotation.RequestMapping; | ||
import org.springframework.web.bind.annotation.RequestParam; | ||
import org.springframework.web.bind.annotation.RestController; | ||
import org.springframework.web.bind.annotation.*; | ||
|
||
@RestController | ||
@RequestMapping("/api/activities") | ||
@RequiredArgsConstructor | ||
public class ActivityController { | ||
|
||
private final ActivityListService activityListService; | ||
private final ActivityCreateService activityCreateService; | ||
|
||
@GetMapping | ||
public DataResponseDto<ActivityListResponseDto> getActivitiesByUserId(@RequestParam Long userId) { | ||
ActivityListResponseDto response = activityListService.getActivitiesByUserId(userId); | ||
return DataResponseDto.of(response, "사용자의 모든 카테고리별 활동을 성공적으로 조회했습니다."); | ||
} | ||
@PostMapping | ||
public DataResponseDto<ActivityCreateResponseDto> createActivity(@RequestBody ActivityCreateRequestDto request, @RequestParam Long userId){ | ||
ActivityCreateResponseDto response = activityCreateService.createActivity(request,userId); | ||
return DataResponseDto.of(response,"활동을 성공적으로 추가했습니다."); | ||
} | ||
} |
32 changes: 32 additions & 0 deletions
32
src/main/java/com/hobak/happinessql/domain/activity/application/ActivityCreateService.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
package com.hobak.happinessql.domain.activity.application; | ||
|
||
import com.hobak.happinessql.domain.activity.converter.ActivityConverter; | ||
import com.hobak.happinessql.domain.activity.domain.Activity; | ||
import com.hobak.happinessql.domain.activity.domain.Category; | ||
import com.hobak.happinessql.domain.activity.dto.ActivityCreateRequestDto; | ||
import com.hobak.happinessql.domain.activity.dto.ActivityCreateResponseDto; | ||
import com.hobak.happinessql.domain.activity.repository.ActivityRepository; | ||
import com.hobak.happinessql.domain.activity.repository.CategoryRepository; | ||
import lombok.RequiredArgsConstructor; | ||
import org.springframework.stereotype.Service; | ||
import org.springframework.transaction.annotation.Transactional; | ||
|
||
|
||
@Service | ||
@Transactional | ||
@RequiredArgsConstructor | ||
public class ActivityCreateService { | ||
|
||
private final ActivityRepository activityRepository; | ||
private final CategoryRepository categoryRepository; | ||
public ActivityCreateResponseDto createActivity(ActivityCreateRequestDto requestDto,Long userId) { | ||
Category category = categoryRepository.findByUserId(userId); | ||
|
||
Long nextActivityId = activityRepository.findNextActivityId(); | ||
Activity activity = new Activity(nextActivityId, requestDto.getActivityName(), category); | ||
|
||
Activity savedActivity = activityRepository.save(activity); | ||
return ActivityConverter.toActivityCreateResponseDto(savedActivity.getActivityId()); | ||
|
||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
18 changes: 18 additions & 0 deletions
18
src/main/java/com/hobak/happinessql/domain/activity/dto/ActivityCreateRequestDto.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
package com.hobak.happinessql.domain.activity.dto; | ||
|
||
import lombok.AccessLevel; | ||
import lombok.Builder; | ||
import lombok.Getter; | ||
import lombok.NoArgsConstructor; | ||
|
||
@Getter | ||
@NoArgsConstructor(access = AccessLevel.PROTECTED) | ||
public class ActivityCreateRequestDto { | ||
private String category; | ||
private String activityName; | ||
@Builder | ||
ActivityCreateRequestDto(String category, String activityName){ | ||
this.category = category; | ||
this.activityName = activityName; | ||
} | ||
} |
16 changes: 16 additions & 0 deletions
16
src/main/java/com/hobak/happinessql/domain/activity/dto/ActivityCreateResponseDto.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
package com.hobak.happinessql.domain.activity.dto; | ||
|
||
import lombok.AccessLevel; | ||
import lombok.Builder; | ||
import lombok.Getter; | ||
import lombok.NoArgsConstructor; | ||
|
||
@Getter | ||
@NoArgsConstructor(access = AccessLevel.PROTECTED) | ||
public class ActivityCreateResponseDto { | ||
private Long activityId; | ||
@Builder | ||
ActivityCreateResponseDto(Long activityId){ | ||
this.activityId = activityId; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters