package com.restfulbooker.api.api; import com.restfulbooker.api.payloads.request.BookingPayload; import com.restfulbooker.api.payloads.response.BookingResponse; import org.springframework.http.*; import org.springframework.web.client.HttpClientErrorException; import org.springframework.web.client.RestTemplate; import java.util.Collections; public class Booking { private static RestTemplate restTemplate = new RestTemplate(); private static String baseUrl = "https://restful-booker.herokuapp.com"; public static ResponseEntity<String> getBookings(){ return restTemplate.getForEntity(baseUrl + "/booking", String.class); } public static ResponseEntity<String> getBooking(int id, MediaType accept) throws HttpClientErrorException { HttpHeaders requestHeaders = new HttpHeaders(); requestHeaders.setAccept(Collections.singletonList(accept)); HttpEntity<String> httpEntity = new HttpEntity<String>(requestHeaders); return restTemplate.exchange(baseUrl + "/booking/" + Integer.toString(id), HttpMethod.GET, httpEntity, String.class); } public static ResponseEntity<BookingResponse> postBooking(BookingPayload payload) { HttpHeaders requestHeaders = new HttpHeaders(); requestHeaders.setContentType(MediaType.APPLICATION_JSON); requestHeaders.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON)); HttpEntity<BookingPayload> httpEntity = new HttpEntity<BookingPayload>(payload, requestHeaders); return restTemplate.exchange(baseUrl + "/booking", HttpMethod.POST, httpEntity, BookingResponse.class); } public static ResponseEntity<String> deleteBooking(int id, String tokenValue) { HttpHeaders requestHeaders = new HttpHeaders(); requestHeaders.set("Cookie","token=" + tokenValue); HttpEntity<String> httpEntity = new HttpEntity<String>(requestHeaders); return restTemplate.exchange(baseUrl + "/booking/" + Integer.toString(id), HttpMethod.DELETE, httpEntity, String.class); } }