Commit 302aa8ae authored by Julius Wu's avatar Julius Wu

delete is complete need to do testing

parent 3132ce08
......@@ -55,7 +55,9 @@ public class PromotionsController {
@DeleteMapping("/{promoId}")
public Mono<ResponseEntity<PromotionDto>> deletePromotionById(@PathVariable String promoId){
//TODO: delete promotion
return null;
return promotionService.deletePromotion(promoId)
.map(res -> ResponseEntity.ok().<PromotionDto>build())
.defaultIfEmpty(ResponseEntity.notFound().build());
}
}
package com.nisum.ascend.promotions.exception;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ResponseStatus;
@ResponseStatus(value = HttpStatus.NOT_FOUND)
public class ResourceNotFoundException extends Exception{
HttpStatus status;
public ResourceNotFoundException(HttpStatus status, String message) {
super(message);
this.status = status;
}
}
package com.nisum.ascend.promotions.service;
import com.nisum.ascend.promotions.dto.PromotionDto;
import com.nisum.ascend.promotions.exception.ResourceNotFoundException;
import com.nisum.ascend.promotions.model.Promotion;
import com.nisum.ascend.promotions.repository.PromotionRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
......@@ -35,4 +37,12 @@ public class PromotionService {
});
}
public Mono<PromotionDto> deletePromotion(String promoId){
return promotionRepository.findByPromotionId(promoId)
.flatMap(promo -> promotionRepository.delete(promo)
.then(Mono.just(promo)))
.map(PromotionDto::generateDtoFromPromotion)
.switchIfEmpty(Mono.error(new ResourceNotFoundException(HttpStatus.NOT_FOUND, "Product Not Found")));
}
}
......@@ -112,5 +112,8 @@ class PromotionsControllerTest {
.expectBody()
.jsonPath("$.minimumQuantity").isEqualTo(1);
}
@Test
void deletePromotion(){
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment