File tree Expand file tree Collapse file tree 13 files changed +219
-5
lines changed
Expand file tree Collapse file tree 13 files changed +219
-5
lines changed Original file line number Diff line number Diff line change 1+ package com .climbup .climbup .tier .controller ;
2+
3+ import com .climbup .climbup .tier .dto .response .TierResponse ;
4+ import com .climbup .climbup .tier .service .TierService ;
5+ import io .swagger .v3 .oas .annotations .Operation ;
6+ import io .swagger .v3 .oas .annotations .responses .ApiResponse ;
7+ import lombok .RequiredArgsConstructor ;
8+ import org .springframework .http .ResponseEntity ;
9+ import org .springframework .web .bind .annotation .GetMapping ;
10+ import org .springframework .web .bind .annotation .RequestMapping ;
11+ import org .springframework .web .bind .annotation .RestController ;
12+
13+ import java .util .List ;
14+
15+ @ RestController
16+ @ RequestMapping ("/tiers" )
17+ @ RequiredArgsConstructor
18+ public class TierController {
19+
20+ private final TierService tierService ;
21+
22+ @ Operation (summary = "모든 티어 반환" , description = "존재하는 모든 티어의 리스트를 반환합니다" )
23+ @ ApiResponse (responseCode = "200" , description = "성공적으로 모든 티어 종류의 리스트를 반환" )
24+ @ GetMapping
25+ public ResponseEntity <List <TierResponse >> getAllTierList () {
26+ return ResponseEntity .ok (tierService .getAllTiers ());
27+ }
28+
29+ }
Original file line number Diff line number Diff line change 1+ package com .climbup .climbup .tier .dto .response ;
2+
3+ import com .climbup .climbup .tier .entity .Tier ;
4+ import io .swagger .v3 .oas .annotations .media .Schema ;
5+ import lombok .Builder ;
6+ import lombok .Data ;
7+
8+ @ Data
9+ @ Builder
10+ public class TierResponse {
11+
12+ @ Schema (description = "티어 id" )
13+ private Long id ;
14+
15+ @ Schema (description = "티어 이름" )
16+ private String name ;
17+
18+ @ Schema (description = "티어 이미지 주소" )
19+ private String imageUrl ;
20+
21+ public static TierResponse toDto (Tier tier ) {
22+ return TierResponse .builder ()
23+ .id (tier .getId ())
24+ .name (tier .getName ())
25+ .imageUrl (tier .getImageUrl ())
26+ .build ();
27+ }
28+ }
Original file line number Diff line number Diff line change 1+ package com .climbup .climbup .tier .repository ;
2+
3+ import com .climbup .climbup .tier .entity .Tier ;
4+ import org .springframework .data .jpa .repository .JpaRepository ;
5+ import org .springframework .stereotype .Repository ;
6+
7+
8+ @ Repository
9+ public interface TierRepository extends JpaRepository <Tier , Long > {
10+ }
Original file line number Diff line number Diff line change 1+ package com .climbup .climbup .tier .service ;
2+
3+ import com .climbup .climbup .tier .dto .response .TierResponse ;
4+ import com .climbup .climbup .tier .entity .Tier ;
5+
6+ import java .util .List ;
7+
8+ public interface TierService {
9+ List <TierResponse > getAllTiers ();
10+
11+ Tier getTierById (Long id );
12+ }
Original file line number Diff line number Diff line change 1+ package com .climbup .climbup .tier .service ;
2+
3+ import com .climbup .climbup .tier .dto .response .TierResponse ;
4+ import com .climbup .climbup .tier .entity .Tier ;
5+ import com .climbup .climbup .tier .repository .TierRepository ;
6+ import jakarta .transaction .Transactional ;
7+ import lombok .RequiredArgsConstructor ;
8+ import org .springframework .stereotype .Service ;
9+
10+ import java .util .List ;
11+
12+ @ Service
13+ @ RequiredArgsConstructor
14+ public class TierServiceImpl implements TierService {
15+
16+ private final TierRepository tierRepository ;
17+
18+ @ Override
19+ @ Transactional
20+ public List <TierResponse > getAllTiers () {
21+ List <Tier > tiers = tierRepository .findAll ();
22+
23+ return tiers .stream ().map (TierResponse ::toDto ).toList ();
24+ }
25+
26+ @ Override
27+ @ Transactional
28+ public Tier getTierById (Long id ){
29+ return tierRepository .findById (id ).orElseThrow ();
30+ }
31+ }
Original file line number Diff line number Diff line change 1+ package com .climbup .climbup .user .controller ;
2+
3+ import com .climbup .climbup .tier .entity .Tier ;
4+ import com .climbup .climbup .tier .service .TierService ;
5+ import com .climbup .climbup .user .dto .request .SetUserTierRequest ;
6+ import com .climbup .climbup .user .service .UserService ;
7+ import lombok .RequiredArgsConstructor ;
8+ import org .springframework .http .ResponseEntity ;
9+ import org .springframework .web .bind .annotation .PostMapping ;
10+ import org .springframework .web .bind .annotation .RequestBody ;
11+ import org .springframework .web .bind .annotation .RequestMapping ;
12+ import org .springframework .web .bind .annotation .RestController ;
13+
14+ @ RestController
15+ @ RequestMapping ("/users" )
16+ @ RequiredArgsConstructor
17+ public class UserController {
18+
19+
20+ private final UserService userService ;
21+ private final TierService tierService ;
22+
23+ @ PostMapping ("/set-tier" )
24+ public ResponseEntity <Void > setUserTier (@ RequestBody () SetUserTierRequest request ) {
25+ Tier tier = tierService .getTierById (request .getTierId ());
26+ userService .setUserTier (tier );
27+
28+ return ResponseEntity .accepted ().build ();
29+ }
30+ }
Original file line number Diff line number Diff line change 1+ package com .climbup .climbup .user .dto .request ;
2+
3+ import io .swagger .v3 .oas .annotations .media .Schema ;
4+ import jakarta .validation .constraints .NotNull ;
5+ import lombok .Builder ;
6+ import lombok .Data ;
7+
8+ @ Data
9+ @ Builder
10+ public class SetUserTierRequest {
11+
12+ @ NotNull
13+ @ Schema (name = "tierId" , description = "티어 id" )
14+ private Long tierId ;
15+ }
Original file line number Diff line number Diff line change 1+ package com .climbup .climbup .user .exception ;
2+
3+ public class UserOnboardingAlreadyCompleteException extends RuntimeException {
4+ public UserOnboardingAlreadyCompleteException (String message ) {
5+ super (message );
6+ }
7+ }
Original file line number Diff line number Diff line change 1+ package com .climbup .climbup .user .repository ;
2+
3+ import com .climbup .climbup .user .entity .User ;
4+ import org .springframework .data .jpa .repository .JpaRepository ;
5+ import org .springframework .stereotype .Repository ;
6+
7+ @ Repository
8+ public interface UserRepository extends JpaRepository <User , Long > {}
Original file line number Diff line number Diff line change 1+ package com .climbup .climbup .user .service ;
2+
3+ import com .climbup .climbup .tier .entity .Tier ;
4+ import com .climbup .climbup .user .entity .User ;
5+ import org .springframework .stereotype .Service ;
6+
7+ @ Service
8+ public interface UserService {
9+ User getUserById (Long id );
10+
11+ void setUserTier (Tier tier );
12+ }
You can’t perform that action at this time.
0 commit comments