73 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
package com.release11.klaus.controller;
 | 
						|
 | 
						|
 | 
						|
import com.release11.klaus.model.MockedMessageDto;
 | 
						|
import com.release11.klaus.service.KlausService;
 | 
						|
import com.release11.klaus.utilis.BusinessKey;
 | 
						|
import com.release11.klaus.utilis.TrackingClient;
 | 
						|
import lombok.AllArgsConstructor;
 | 
						|
import lombok.extern.slf4j.Slf4j;
 | 
						|
import org.springframework.http.HttpHeaders;
 | 
						|
import org.springframework.http.HttpStatus;
 | 
						|
import org.springframework.http.RequestEntity;
 | 
						|
import org.springframework.http.ResponseEntity;
 | 
						|
import org.springframework.stereotype.Controller;
 | 
						|
import org.springframework.web.bind.annotation.*;
 | 
						|
 | 
						|
import java.util.List;
 | 
						|
import java.util.Map;
 | 
						|
import java.util.Objects;
 | 
						|
import java.util.UUID;
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
 * A class responds to generated message uri's requests.
 | 
						|
 * It deletes or fetches the requested message
 | 
						|
 */
 | 
						|
@RestController
 | 
						|
@Slf4j
 | 
						|
@RequestMapping(path = ("/klaus/v1"))
 | 
						|
@AllArgsConstructor
 | 
						|
public class KlausController {
 | 
						|
 | 
						|
    private final KlausService klausService;
 | 
						|
 | 
						|
 | 
						|
    @DeleteMapping(value = "/delete/{clientUUID}/{mockedResponseId}")
 | 
						|
    public ResponseEntity<String> deleteMockedResponse(@PathVariable UUID clientUUID,
 | 
						|
                                                       @PathVariable int mockedResponseId){
 | 
						|
        TrackingClient.setBusinessKeys(Map.of(BusinessKey.INTERFACE_NAME, "deleteMockedResponse",
 | 
						|
                BusinessKey.CLIENT_UUID, String.valueOf(clientUUID),
 | 
						|
                BusinessKey.MESSAGE_ID, String.valueOf(mockedResponseId)));
 | 
						|
        klausService.deleteMockedResponse(clientUUID, mockedResponseId);
 | 
						|
        return new ResponseEntity<>("message has been deleted", HttpStatus.OK);
 | 
						|
    }
 | 
						|
 | 
						|
    @GetMapping(value = "/getAll/{clientUUID}")
 | 
						|
    public ResponseEntity<String> getAllMockedResponses(@PathVariable UUID clientUUID){
 | 
						|
        TrackingClient.setBusinessKeys(Map.of(BusinessKey.INTERFACE_NAME, "getAllMockedResponse",
 | 
						|
                BusinessKey.CLIENT_UUID, String.valueOf(clientUUID)));
 | 
						|
        List<MockedMessageDto> mockedMessages = klausService.getAllMockedResponses(clientUUID);
 | 
						|
        return new ResponseEntity<>(mockedMessages.toString(), HttpStatus.OK);
 | 
						|
    }
 | 
						|
 | 
						|
    @RequestMapping(value = "/get/{clientUUID}/{mockedResponseId}")
 | 
						|
    public ResponseEntity getMockedResponse(RequestEntity<String> requestEntity,
 | 
						|
                                            @PathVariable UUID clientUUID,
 | 
						|
                                            @PathVariable int mockedResponseId) {
 | 
						|
        TrackingClient.setBusinessKeys(Map.of(BusinessKey.INTERFACE_NAME, "getMockedResponse - request",
 | 
						|
                BusinessKey.CLIENT_UUID, String.valueOf(clientUUID),
 | 
						|
                BusinessKey.MESSAGE_ID, String.valueOf(mockedResponseId)));
 | 
						|
        log.info(requestEntity.toString().replaceAll("\"", "\\\\\"").substring(1));
 | 
						|
        TrackingClient.setBusinessKeys(Map.of(BusinessKey.INTERFACE_NAME, "getMockedResponse - response",
 | 
						|
                BusinessKey.CLIENT_UUID, String.valueOf(clientUUID),
 | 
						|
                BusinessKey.MESSAGE_ID, String.valueOf(mockedResponseId)));
 | 
						|
        MockedMessageDto mockedMessageDto = klausService.getMockedResponse(clientUUID, mockedResponseId);
 | 
						|
        HttpHeaders httpHeaders = new HttpHeaders();
 | 
						|
        if (mockedMessageDto.getHttpHeaders() != null) mockedMessageDto.getHttpHeaders().forEach(httpHeaders::set);
 | 
						|
        return new ResponseEntity<>(mockedMessageDto.getMessageBody(), httpHeaders,
 | 
						|
                Objects.requireNonNull(HttpStatus.valueOf(mockedMessageDto.getHttpStatus())));
 | 
						|
    }
 | 
						|
 | 
						|
}
 |