Skip to content

Commit

Permalink
feat: FakeDoor domain, API
Browse files Browse the repository at this point in the history
  • Loading branch information
redcarrot1 committed Feb 28, 2024
1 parent 7d9de36 commit 7352145
Show file tree
Hide file tree
Showing 4 changed files with 85 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.playkuround.playkuroundserver.domain.fakedoor.api;

import com.playkuround.playkuroundserver.domain.fakedoor.application.FakeDoorService;
import com.playkuround.playkuroundserver.global.common.response.ApiResponse;
import com.playkuround.playkuroundserver.global.security.UserDetailsImpl;
import com.playkuround.playkuroundserver.global.util.ApiUtils;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/api/fake-door")
@RequiredArgsConstructor
@Tag(name = "fakeDoor API", description = "광고보고 쿠라운드 응원하기 버튼 클릭 API")
public class FakeDoorApi {

private final FakeDoorService fakeDoorService;

@PostMapping
@ResponseStatus(HttpStatus.CREATED)
@Operation(summary = "광고보고 쿠라운드 응원하기 버튼 클릭", description = "광고보고 쿠라운드 응원하기 버튼 클릭시 호출되는 API")
public ApiResponse<Void> saveFakeDoor(@AuthenticationPrincipal UserDetailsImpl userDetails) {
fakeDoorService.saveFakeDoor(userDetails.getUser());
return ApiUtils.success(null);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.playkuround.playkuroundserver.domain.fakedoor.application;

import com.playkuround.playkuroundserver.domain.fakedoor.dao.FakeDoorRepository;
import com.playkuround.playkuroundserver.domain.fakedoor.domain.FakeDoor;
import com.playkuround.playkuroundserver.domain.user.domain.User;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
@RequiredArgsConstructor
public class FakeDoorService {

private final FakeDoorRepository fakeDoorRepository;

@Transactional(readOnly = true)
public void saveFakeDoor(User user) {
FakeDoor fakeDoor = new FakeDoor(user);
fakeDoorRepository.save(fakeDoor);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.playkuround.playkuroundserver.domain.fakedoor.dao;

import com.playkuround.playkuroundserver.domain.fakedoor.domain.FakeDoor;
import org.springframework.data.jpa.repository.JpaRepository;

public interface FakeDoorRepository extends JpaRepository<FakeDoor, Long> {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package com.playkuround.playkuroundserver.domain.fakedoor.domain;

import com.playkuround.playkuroundserver.domain.user.domain.User;
import jakarta.persistence.*;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Entity
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class FakeDoor {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "user_id")
private User user;

public FakeDoor(User user) {
this.user = user;
}
}

0 comments on commit 7352145

Please sign in to comment.