Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue #233: Move endpoints related to amenities from community tag #253

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions api/src/main/resources/public/swagger/api.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ paths:
security:
- bearerAuth: [ ]
tags:
- Communities
- Amenities
description: Get all amenities of community
operationId: listAllAmenities
parameters:
Expand Down Expand Up @@ -170,7 +170,7 @@ paths:
security:
- bearerAuth: [ ]
tags:
- Communities
- Amenities
description: Adds amenity to community
operationId: addAmenityToCommunity
requestBody:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,12 @@

import com.myhome.api.AmenitiesApi;
import com.myhome.controllers.mapper.AmenityApiMapper;
import com.myhome.model.AmenityDto;
import com.myhome.model.AddAmenityRequest;
import com.myhome.model.AddAmenityResponse;
import com.myhome.domain.Amenity;
import com.myhome.model.GetAmenityDetailsResponse;
import com.myhome.model.UpdateAmenityRequest;
import com.myhome.model.*;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

import com.myhome.services.AmenityService;
import com.myhome.services.CommunityService;
import javax.validation.Valid;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
Expand All @@ -33,14 +34,15 @@
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

import java.util.Set;

@RestController
@Slf4j
@RequiredArgsConstructor
public class AmenityController implements AmenitiesApi {

private final AmenityService amenitySDJpaService;
private final AmenityApiMapper amenityApiMapper;
private final CommunityService communityService;

@Override
public ResponseEntity<GetAmenityDetailsResponse> getAmenityDetails(
Expand All @@ -51,6 +53,25 @@ public ResponseEntity<GetAmenityDetailsResponse> getAmenityDetails(
.orElse(ResponseEntity.status(HttpStatus.NOT_FOUND).build());
}

@Override
public ResponseEntity<Set<GetAmenityDetailsResponse>> listAllAmenities(
@PathVariable String communityId) {
Set<Amenity> amenities = amenitySDJpaService.listAllAmenities(communityId);
Set<GetAmenityDetailsResponse> response =
amenityApiMapper.amenitiesSetToAmenityDetailsResponseSet(amenities);
return ResponseEntity.ok(response);
}

@Override
public ResponseEntity<AddAmenityResponse> addAmenityToCommunity(
@PathVariable String communityId,
@RequestBody AddAmenityRequest request) {
return amenitySDJpaService.createAmenities(request.getAmenities(), communityId)
.map(amenityList -> new AddAmenityResponse().amenities(amenityList))
.map(ResponseEntity::ok)
.orElse(ResponseEntity.notFound().build());
}

@Override
public ResponseEntity deleteAmenity(@PathVariable String amenityId) {
boolean isAmenityDeleted = amenitySDJpaService.deleteAmenity(amenityId);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,12 @@

import com.myhome.api.CommunitiesApi;
import com.myhome.controllers.dto.CommunityDto;
import com.myhome.controllers.mapper.AmenityApiMapper;
import com.myhome.controllers.mapper.CommunityApiMapper;
import com.myhome.controllers.mapper.SchedulePaymentApiMapper;
import com.myhome.domain.Amenity;
import com.myhome.domain.Community;
import com.myhome.domain.CommunityHouse;
import com.myhome.domain.Payment;
import com.myhome.domain.User;
import com.myhome.model.AddAmenityRequest;
import com.myhome.model.AddAmenityResponse;
import com.myhome.model.AddCommunityAdminRequest;
import com.myhome.model.AddCommunityAdminResponse;
import com.myhome.model.AddCommunityHouseRequest;
Expand All @@ -36,14 +32,12 @@
import com.myhome.model.CommunityHouseName;
import com.myhome.model.CreateCommunityRequest;
import com.myhome.model.CreateCommunityResponse;
import com.myhome.model.GetAmenityDetailsResponse;
import com.myhome.model.GetCommunityDetailsResponse;
import com.myhome.model.GetCommunityDetailsResponseCommunity;
import com.myhome.model.GetHouseDetailsResponse;
import com.myhome.model.ListAdminPaymentsResponse;
import com.myhome.model.ListCommunityAdminsResponse;
import com.myhome.utils.PageInfo;
import com.myhome.services.AmenityService;
import com.myhome.services.CommunityService;
import com.myhome.services.PaymentService;
import java.util.Arrays;
Expand Down Expand Up @@ -73,8 +67,6 @@
public class CommunityController implements CommunitiesApi {
private final CommunityService communityService;
private final CommunityApiMapper communityApiMapper;
private final AmenityService amenitySDJpaService;
private final AmenityApiMapper amenityApiMapper;
private final SchedulePaymentApiMapper schedulePaymentApiMapper;
private final PaymentService paymentService;

Expand Down Expand Up @@ -223,25 +215,6 @@ public ResponseEntity<Void> deleteCommunity(@PathVariable String communityId) {
}
}

@Override
public ResponseEntity<Set<GetAmenityDetailsResponse>> listAllAmenities(
@PathVariable String communityId) {
Set<Amenity> amenities = amenitySDJpaService.listAllAmenities(communityId);
Set<GetAmenityDetailsResponse> response =
amenityApiMapper.amenitiesSetToAmenityDetailsResponseSet(amenities);
return ResponseEntity.ok(response);
}

@Override
public ResponseEntity<AddAmenityResponse> addAmenityToCommunity(
@PathVariable String communityId,
@RequestBody AddAmenityRequest request) {
return amenitySDJpaService.createAmenities(request.getAmenities(), communityId)
.map(amenityList -> new AddAmenityResponse().amenities(amenityList))
.map(ResponseEntity::ok)
.orElse(ResponseEntity.notFound().build());
}

@Override
public ResponseEntity<ListAdminPaymentsResponse> listAllAdminScheduledPayments(
String communityId, String adminId, Pageable pageable) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,13 @@

import com.myhome.controllers.mapper.AmenityApiMapper;
import com.myhome.domain.Amenity;
import com.myhome.model.AddAmenityRequest;
import com.myhome.model.AddAmenityResponse;
import com.myhome.model.AmenityDto;
import com.myhome.model.GetAmenityDetailsResponse;
import com.myhome.model.UpdateAmenityRequest;
import com.myhome.services.AmenityService;
import java.math.BigDecimal;
import java.util.HashSet;
import java.util.Optional;

import helpers.TestUtils;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks;
Expand All @@ -37,7 +33,6 @@
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;

import static java.util.Collections.singletonList;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.mockito.ArgumentMatchers.any;
Expand Down Expand Up @@ -72,17 +67,17 @@ void getAmenityDetails() {
// given
Amenity testAmenity = getTestAmenity();
GetAmenityDetailsResponse expectedResponseBody = new GetAmenityDetailsResponse()
.amenityId(testAmenity.getAmenityId())
.description(testAmenity.getDescription());
.amenityId(testAmenity.getAmenityId())
.description(testAmenity.getDescription());

given(amenitySDJpaService.getAmenityDetails(TEST_AMENITY_ID))
.willReturn(Optional.of(testAmenity));
.willReturn(Optional.of(testAmenity));
given(amenityApiMapper.amenityToAmenityDetailsResponse(testAmenity))
.willReturn(expectedResponseBody);
.willReturn(expectedResponseBody);

// when
ResponseEntity<GetAmenityDetailsResponse> response =
amenityController.getAmenityDetails(TEST_AMENITY_ID);
amenityController.getAmenityDetails(TEST_AMENITY_ID);

// then
assertEquals(expectedResponseBody, response.getBody());
Expand All @@ -95,11 +90,11 @@ void getAmenityDetails() {
void getAmenityDetailsNotExists() {
// given
given(amenitySDJpaService.getAmenityDetails(TEST_AMENITY_ID))
.willReturn(Optional.empty());
.willReturn(Optional.empty());

// when
ResponseEntity<GetAmenityDetailsResponse> response =
amenityController.getAmenityDetails(TEST_AMENITY_ID);
amenityController.getAmenityDetails(TEST_AMENITY_ID);

// then
assertNull(response.getBody());
Expand All @@ -112,7 +107,7 @@ void getAmenityDetailsNotExists() {
void deleteAmenity() {
// given
given(amenitySDJpaService.deleteAmenity(TEST_AMENITY_ID))
.willReturn(true);
.willReturn(true);

// when
ResponseEntity response = amenityController.deleteAmenity(TEST_AMENITY_ID);
Expand All @@ -127,7 +122,7 @@ void deleteAmenity() {
void deleteAmenityNotExists() {
// given
given(amenitySDJpaService.deleteAmenity(TEST_AMENITY_ID))
.willReturn(false);
.willReturn(false);

// when
ResponseEntity response = amenityController.deleteAmenity(TEST_AMENITY_ID);
Expand All @@ -145,13 +140,13 @@ void shouldUpdateAmenitySuccessfully() {
UpdateAmenityRequest request = getUpdateAmenityRequest();

given(amenityApiMapper.updateAmenityRequestToAmenityDto(request))
.willReturn(amenityDto);
.willReturn(amenityDto);
given(amenitySDJpaService.updateAmenity(amenityDto))
.willReturn(true);
.willReturn(true);

// when
ResponseEntity<Void> responseEntity =
amenityController.updateAmenity(TEST_AMENITY_ID, request);
amenityController.updateAmenity(TEST_AMENITY_ID, request);

// then
assertEquals(HttpStatus.NO_CONTENT, responseEntity.getStatusCode());
Expand All @@ -166,13 +161,13 @@ void shouldNotUpdateCommunityAmenityIfAmenityNotExists() {
UpdateAmenityRequest request = getUpdateAmenityRequest();

given(amenityApiMapper.updateAmenityRequestToAmenityDto(request))
.willReturn(amenityDto);
.willReturn(amenityDto);
given(amenitySDJpaService.updateAmenity(amenityDto))
.willReturn(false);
.willReturn(false);

// when
ResponseEntity<Void> responseEntity =
amenityController.updateAmenity(TEST_AMENITY_ID, request);
amenityController.updateAmenity(TEST_AMENITY_ID, request);

// then
assertEquals(HttpStatus.NOT_FOUND, responseEntity.getStatusCode());
Expand Down Expand Up @@ -211,25 +206,25 @@ void deleteBookingNotExists() {

private Amenity getTestAmenity() {
return new Amenity()
.withAmenityId(TEST_AMENITY_ID)
.withDescription(TEST_AMENITY_DESCRIPTION);
.withAmenityId(TEST_AMENITY_ID)
.withDescription(TEST_AMENITY_DESCRIPTION);
}

private AmenityDto getTestAmenityDto() {
return new AmenityDto()
.id(1L)
.amenityId(TEST_AMENITY_ID)
.name(TEST_AMENITY_NAME)
.description(TEST_AMENITY_DESCRIPTION)
.price(TEST_AMENITY_PRICE)
.communityId(TEST_COMMUNITY_ID);
.id(1L)
.amenityId(TEST_AMENITY_ID)
.name(TEST_AMENITY_NAME)
.description(TEST_AMENITY_DESCRIPTION)
.price(TEST_AMENITY_PRICE)
.communityId(TEST_COMMUNITY_ID);
}

private UpdateAmenityRequest getUpdateAmenityRequest() {
return new UpdateAmenityRequest()
.name(TEST_AMENITY_NAME)
.description(TEST_AMENITY_DESCRIPTION)
.price(1L)
.communityId(TEST_COMMUNITY_ID);
.name(TEST_AMENITY_NAME)
.description(TEST_AMENITY_DESCRIPTION)
.price(1L)
.communityId(TEST_COMMUNITY_ID);
}
}
Loading