This repository has been archived by the owner on Aug 13, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
refactor: [#82] Rental Domain 코틀린 변환
- Loading branch information
Showing
11 changed files
with
203 additions
and
378 deletions.
There are no files selected for viewing
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,80 +1,63 @@ | ||
package com.campool.controller; | ||
package com.campool.controller | ||
|
||
import com.campool.service.RentalService | ||
import com.campool.service.BookingService | ||
import com.campool.annotation.LoginValidation | ||
import javax.validation.Valid | ||
import com.campool.model.RentalRegisterRequest | ||
import com.campool.model.CampingGear | ||
import com.campool.annotation.LoginUserId | ||
import com.campool.model.RentalsRequestByLocation | ||
import com.campool.model.Rental | ||
import com.campool.model.RentalDetailsResponse | ||
import org.springframework.transaction.annotation.Transactional | ||
import com.campool.model.RentalCompleteRequest | ||
import org.springframework.web.bind.annotation.* | ||
|
||
import com.campool.annotation.LoginUserId; | ||
import com.campool.annotation.LoginValidation; | ||
import com.campool.model.BookingInfo; | ||
import com.campool.model.CampingGear; | ||
import com.campool.model.Rental; | ||
import com.campool.model.RentalCompleteRequest; | ||
import com.campool.model.RentalDetailsResponse; | ||
import com.campool.model.RentalInfo; | ||
import com.campool.model.RentalRegisterRequest; | ||
import com.campool.model.RentalsRequestByLocation; | ||
import com.campool.service.BookingService; | ||
import com.campool.service.RentalService; | ||
import java.util.List; | ||
import javax.validation.Valid; | ||
import lombok.NonNull; | ||
import lombok.RequiredArgsConstructor; | ||
import org.springframework.transaction.annotation.Transactional; | ||
import org.springframework.web.bind.annotation.DeleteMapping; | ||
import org.springframework.web.bind.annotation.GetMapping; | ||
import org.springframework.web.bind.annotation.PatchMapping; | ||
import org.springframework.web.bind.annotation.PathVariable; | ||
import org.springframework.web.bind.annotation.PostMapping; | ||
import org.springframework.web.bind.annotation.RequestBody; | ||
import org.springframework.web.bind.annotation.RestController; | ||
|
||
@RequiredArgsConstructor | ||
@RestController | ||
public class RentalController { | ||
|
||
@NonNull | ||
private final RentalService rentalService; | ||
|
||
@NonNull | ||
private final BookingService bookingService; | ||
|
||
class RentalController( | ||
private val rentalService: RentalService, | ||
private val bookingService: BookingService | ||
) { | ||
@LoginValidation | ||
@PostMapping("/rentals") | ||
public void registerRental(@Valid RentalRegisterRequest rentalRegisterRequest, | ||
@RequestBody List<CampingGear> gears, @LoginUserId String id) { | ||
rentalService.register(id, rentalRegisterRequest, gears); | ||
fun registerRental( | ||
@Valid request: RentalRegisterRequest, | ||
@RequestBody gears: List<CampingGear>, @LoginUserId id: String | ||
) { | ||
rentalService.register(id, request, gears) | ||
} | ||
|
||
@LoginValidation | ||
@GetMapping("/rentals") | ||
public List<Rental> getRentalsByLocation( | ||
@Valid RentalsRequestByLocation rentalsRequestByLocation) { | ||
return rentalService.getRentalsByLocation(rentalsRequestByLocation); | ||
} | ||
fun getRentalsByLocation(@Valid request: RentalsRequestByLocation): List<Rental> = | ||
rentalService.getRentalsByLocation(request) | ||
|
||
@LoginValidation | ||
@GetMapping("/rentals/{id}") | ||
public RentalDetailsResponse getRentalInfoById(@PathVariable long id) { | ||
RentalInfo rentalInfo = rentalService.getRentalById(id); | ||
List<CampingGear> gears = rentalService.getGearsByRentalId(id); | ||
return new RentalDetailsResponse(rentalInfo, gears); | ||
fun getRentalInfoById(@PathVariable id: Long): RentalDetailsResponse { | ||
val rentalInfo = rentalService.getRentalById(id) | ||
val gears = rentalService.getGearsByRentalId(id) | ||
return RentalDetailsResponse(rentalInfo, gears) | ||
} | ||
|
||
@LoginValidation | ||
@PatchMapping("/rentals/{rentalId}/rent") | ||
public void rentCampingGears(@PathVariable long rentalId, @LoginUserId String userId) { | ||
rentalService.updateStatusToRented(rentalId, userId); | ||
fun rentCampingGears(@PathVariable rentalId: Long, @LoginUserId userId: String) { | ||
rentalService.updateStatusToRented(rentalId, userId) | ||
} | ||
|
||
@LoginValidation | ||
@PostMapping("/rentals/complete") | ||
@Transactional | ||
public void completeRental(@Valid RentalCompleteRequest request, @LoginUserId String userId) { | ||
BookingInfo bookingInfo = bookingService.getBookingInfoById(request.getBookingId()); | ||
rentalService.completeRental(request.getRentalId(), bookingInfo, userId); | ||
fun completeRental(@Valid request: RentalCompleteRequest, @LoginUserId userId: String) { | ||
val bookingInfo = bookingService.getBookingInfoById(request.bookingId) | ||
rentalService.completeRental(request.rentalId, bookingInfo, userId) | ||
} | ||
|
||
@LoginValidation | ||
@DeleteMapping("/rentals/{rentalId}") | ||
public void deleteRental(@PathVariable long rentalId, @LoginUserId String userId) { | ||
rentalService.deleteRental(rentalId, userId); | ||
fun deleteRental(@PathVariable rentalId: Long, @LoginUserId userId: String) { | ||
rentalService.deleteRental(rentalId, userId) | ||
} | ||
|
||
} | ||
} |
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,14 +1,8 @@ | ||
package com.campool.enumeration; | ||
package com.campool.enumeration | ||
|
||
import lombok.Getter; | ||
import lombok.RequiredArgsConstructor; | ||
|
||
@RequiredArgsConstructor | ||
@Getter | ||
public enum RentalStatus { | ||
enum class RentalStatus(val message: String) { | ||
TRADEABLE("거래 가능"), | ||
TRADING("거래 중"), | ||
RENTED("대여 중"), | ||
TRADE_COMPLETED("거래 완료"); | ||
private final String message; | ||
} | ||
} |
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,33 +1,29 @@ | ||
package com.campool.mapper; | ||
|
||
import com.campool.enumeration.RentalStatus; | ||
import com.campool.model.CampingGear; | ||
import com.campool.model.Rental; | ||
import com.campool.model.RentalInfo; | ||
import com.campool.model.RentalRegisterRequest; | ||
import com.campool.model.RentalsRequestByLocation; | ||
import java.time.LocalDate; | ||
import java.util.List; | ||
import org.apache.ibatis.annotations.Mapper; | ||
package com.campool.mapper | ||
|
||
@Mapper | ||
public interface RentalMapper { | ||
|
||
void insertRental(String userId, RentalRegisterRequest rental, RentalStatus status); | ||
import com.campool.model.RentalRegisterRequest | ||
import com.campool.enumeration.RentalStatus | ||
import com.campool.model.CampingGear | ||
import com.campool.model.RentalInfo | ||
import com.campool.model.RentalsRequestByLocation | ||
import com.campool.model.Rental | ||
import org.apache.ibatis.annotations.Mapper | ||
import java.time.LocalDate | ||
|
||
void insertGears(List<CampingGear> gears); | ||
@Mapper | ||
interface RentalMapper { | ||
fun insertRental(userId: String, rental: RentalRegisterRequest, status: RentalStatus) | ||
|
||
RentalInfo findRentalInfoById(long id); | ||
fun insertGears(gears: List<CampingGear>) | ||
|
||
List<CampingGear> findGearsByRentalId(long rentalId); | ||
fun findRentalInfoById(id: Long): RentalInfo? | ||
|
||
List<Rental> findRentalsByLocation(RentalsRequestByLocation rental, RentalStatus status, | ||
String polygon); | ||
fun findGearsByRentalId(rentalId: Long): List<CampingGear> | ||
|
||
Integer findCostByIdAndDate(long id, LocalDate startDate, LocalDate endDate); | ||
fun findRentalsByLocation(rental: RentalsRequestByLocation, status: RentalStatus, polygon: String): List<Rental> | ||
|
||
void updateStatusById(long id, RentalStatus status); | ||
fun findCostByIdAndDate(id: Long, startDate: LocalDate, endDate: LocalDate): Int? | ||
|
||
void deleteById(long id); | ||
fun updateStatusById(id: Long, status: RentalStatus) | ||
|
||
} | ||
fun deleteById(id: Long) | ||
} |
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,42 +1,21 @@ | ||
package com.campool.model; | ||
|
||
import com.campool.enumeration.RentalStatus; | ||
import java.time.LocalDate; | ||
import lombok.Getter; | ||
import lombok.RequiredArgsConstructor; | ||
import lombok.ToString; | ||
|
||
@Getter | ||
@RequiredArgsConstructor | ||
@ToString | ||
public class BookingInfo { | ||
|
||
private final long bookingId; | ||
|
||
private final LocalDate startDate; | ||
|
||
private final LocalDate endDate; | ||
|
||
private final int amount; | ||
|
||
private final long rentalId; | ||
|
||
private final String title; | ||
|
||
private final String description; | ||
|
||
private final RentalStatus rentalStatus; | ||
|
||
private final double longitude; | ||
|
||
private final double latitude; | ||
|
||
private final String userId; | ||
|
||
private final String name; | ||
|
||
private final String email; | ||
|
||
private final String telephone; | ||
|
||
} | ||
package com.campool.model | ||
|
||
import java.time.LocalDate | ||
import com.campool.enumeration.RentalStatus | ||
|
||
data class BookingInfo( | ||
val bookingId: Long, | ||
val startDate: LocalDate, | ||
val endDate: LocalDate, | ||
val amount: Int, | ||
val rentalId: Long, | ||
val title: String, | ||
val description: String, | ||
val rentalStatus: RentalStatus, | ||
val longitude: Double, | ||
val latitude: Double, | ||
val userId: String, | ||
val name: String, | ||
val email: String, | ||
val telephone: String | ||
) |
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,29 +1,14 @@ | ||
package com.campool.model; | ||
|
||
import java.time.LocalDate; | ||
import lombok.Getter; | ||
import lombok.RequiredArgsConstructor; | ||
import lombok.ToString; | ||
|
||
@Getter | ||
@RequiredArgsConstructor | ||
@ToString | ||
public class Rental { | ||
|
||
private final int rentalId; | ||
|
||
private final String title; | ||
|
||
private final String userId; | ||
|
||
private final LocalDate startDate; | ||
|
||
private final LocalDate endDate; | ||
|
||
private final int cost; | ||
|
||
private final double longitude; | ||
|
||
private final double latitude; | ||
|
||
} | ||
package com.campool.model | ||
|
||
import java.time.LocalDate | ||
|
||
data class Rental( | ||
val rentalId: Int, | ||
val title: String, | ||
val userId: String, | ||
val startDate: LocalDate, | ||
val endDate: LocalDate, | ||
val cost: Int, | ||
val longitude: Double, | ||
val latitude: Double | ||
) |
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,19 +1,6 @@ | ||
package com.campool.model; | ||
package com.campool.model | ||
|
||
import lombok.Getter; | ||
import lombok.NonNull; | ||
import lombok.RequiredArgsConstructor; | ||
import lombok.ToString; | ||
|
||
@Getter | ||
@RequiredArgsConstructor | ||
@ToString | ||
public class RentalCompleteRequest { | ||
|
||
@NonNull | ||
private final long rentalId; | ||
|
||
@NonNull | ||
private final long bookingId; | ||
|
||
} | ||
class RentalCompleteRequest( | ||
val rentalId: Long, | ||
val bookingId: Long | ||
) |
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,18 +1,6 @@ | ||
package com.campool.model; | ||
package com.campool.model | ||
|
||
|
||
import java.util.List; | ||
import lombok.Getter; | ||
import lombok.RequiredArgsConstructor; | ||
import lombok.ToString; | ||
|
||
@Getter | ||
@RequiredArgsConstructor | ||
@ToString | ||
public class RentalDetailsResponse { | ||
|
||
private final RentalInfo rentalInfo; | ||
|
||
private final List<CampingGear> gears; | ||
|
||
} | ||
class RentalDetailsResponse( | ||
val rentalInfo: RentalInfo, | ||
val gears: List<CampingGear> | ||
) |
Oops, something went wrong.