Merge branch 'modzeleg' into developer
This commit is contained in:
2
.idea/misc.xml
generated
2
.idea/misc.xml
generated
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="JavadocGenerationManager">
|
<component name="JavadocGenerationManager">
|
||||||
<option name="OUTPUT_DIRECTORY" value="$USER_HOME$/Documents" />
|
<option name="OUTPUT_DIRECTORY" value="$USER_HOME$/Desktop/javadocKlaus" />
|
||||||
<option name="OPTION_SCOPE" value="private" />
|
<option name="OPTION_SCOPE" value="private" />
|
||||||
<option name="OPTION_DOCUMENT_TAG_USE" value="true" />
|
<option name="OPTION_DOCUMENT_TAG_USE" value="true" />
|
||||||
<option name="OPTION_DOCUMENT_TAG_AUTHOR" value="true" />
|
<option name="OPTION_DOCUMENT_TAG_AUTHOR" value="true" />
|
||||||
|
|||||||
166
api-doc.yaml
Normal file
166
api-doc.yaml
Normal file
@@ -0,0 +1,166 @@
|
|||||||
|
openapi: 3.0.0
|
||||||
|
|
||||||
|
info:
|
||||||
|
version: 0.0.1
|
||||||
|
title: Mocked Service
|
||||||
|
description: Service for creating your own mocked endpoints
|
||||||
|
|
||||||
|
tags:
|
||||||
|
- name: "MockedMessage"
|
||||||
|
- name: "MessageHistory"
|
||||||
|
|
||||||
|
paths:
|
||||||
|
/mock/json/{uuid}:
|
||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- "MockedMessage"
|
||||||
|
description: Generates new uuid and default message
|
||||||
|
parameters:
|
||||||
|
- in: path
|
||||||
|
name: uuid
|
||||||
|
required: true
|
||||||
|
description: If not given, server will create and return new one
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: '9bfddcc1-ef89-4c53-84e8-c88f13ecc7ec'
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: Message list sent
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/MockedMessage'
|
||||||
|
|
||||||
|
/mock/json:
|
||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- "MockedMessage"
|
||||||
|
description: Generates new uuid and default message
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: Message list sent
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/MockedMessage'
|
||||||
|
|
||||||
|
post:
|
||||||
|
tags:
|
||||||
|
- "MockedMessage"
|
||||||
|
description: creates new message in the list
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: message has been created
|
||||||
|
|
||||||
|
|
||||||
|
put:
|
||||||
|
tags:
|
||||||
|
- "MockedMessage"
|
||||||
|
description: Adds new item or modifies existing
|
||||||
|
requestBody:
|
||||||
|
required: true
|
||||||
|
description: json format describing MockedMessage object
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/MockedMessage'
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: message has been updated
|
||||||
|
|
||||||
|
/mock/json/{uuid}/{id}:
|
||||||
|
delete:
|
||||||
|
tags:
|
||||||
|
- "MockedMessage"
|
||||||
|
description: Deletes message of given id assigned to given uuid
|
||||||
|
parameters:
|
||||||
|
- in: path
|
||||||
|
name: uuid
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: '9bfddcc1-ef89-4c53-84e8-c88f13ecc7ec'
|
||||||
|
- in: path
|
||||||
|
name: id
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: integer
|
||||||
|
example: 1
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: message has been deleted
|
||||||
|
|
||||||
|
/api/event:
|
||||||
|
post:
|
||||||
|
tags:
|
||||||
|
- "MessageHistory"
|
||||||
|
description: returns history of responses for given uuid
|
||||||
|
requestBody:
|
||||||
|
required: true
|
||||||
|
description: json format describing Event query
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/EventRequest'
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: history of given uuid
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/EventEntry'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
components:
|
||||||
|
schemas:
|
||||||
|
|
||||||
|
MockedMessage:
|
||||||
|
description: Model containing data about created response
|
||||||
|
properties:
|
||||||
|
mockedResponseId:
|
||||||
|
type: integer
|
||||||
|
example: 1
|
||||||
|
clientUUID:
|
||||||
|
type: string
|
||||||
|
example: '9bfddcc1-ef89-4c53-84e8-c88f13ecc7ec'
|
||||||
|
mediaType:
|
||||||
|
type: string
|
||||||
|
example: 'application/xml'
|
||||||
|
messageBody:
|
||||||
|
type: string
|
||||||
|
example: '<root><element>Hello World</element></root>'
|
||||||
|
httpStatus:
|
||||||
|
type: integer
|
||||||
|
example: 200
|
||||||
|
httpHeaders:
|
||||||
|
type: object
|
||||||
|
additionalProperties:
|
||||||
|
type: string
|
||||||
|
|
||||||
|
EventRequest:
|
||||||
|
description: Model containing data about Event query
|
||||||
|
properties:
|
||||||
|
clientUUID:
|
||||||
|
type: string
|
||||||
|
example: '9bfddcc1-ef89-4c53-84e8-c88f13ecc7ec'
|
||||||
|
localDateTimeFrom:
|
||||||
|
type: string
|
||||||
|
example: '2021-01-01T01:01:01'
|
||||||
|
localDateTimeTo:
|
||||||
|
type: string
|
||||||
|
example: '2021-01-01T23:59:59'
|
||||||
|
mockedResponseId:
|
||||||
|
type: integer
|
||||||
|
example: 1
|
||||||
|
|
||||||
|
EventEntry:
|
||||||
|
description: Model containing data about Event entry
|
||||||
|
properties:
|
||||||
|
dateTimeStamp:
|
||||||
|
type: string
|
||||||
|
example: '2021-01-01T01:01:01'
|
||||||
|
interfaceName:
|
||||||
|
type: string
|
||||||
|
example: 'MockedMessage - request'
|
||||||
|
|
||||||
@@ -1,65 +0,0 @@
|
|||||||
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.web.bind.annotation.*;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This controller is responsible for returning the data of given mocked message. The content is made of usual
|
|
||||||
* http parameters like: body, status, headers etc.
|
|
||||||
* Basicly the api is responsible for what a client is looking for - a mocked server response.
|
|
||||||
* Important note: {@link TrackingClient} use is to create logs - the history.
|
|
||||||
* @author Gabriel Modzelewski
|
|
||||||
* @author Rafał Żukowicz
|
|
||||||
*/
|
|
||||||
@RestController
|
|
||||||
@Slf4j
|
|
||||||
@RequestMapping(path = ("/klaus/v1"))
|
|
||||||
@AllArgsConstructor
|
|
||||||
public class KlausController {
|
|
||||||
|
|
||||||
private final KlausService klausService;
|
|
||||||
|
|
||||||
// TODO: Move to MockController
|
|
||||||
/**
|
|
||||||
* It's one of the most important features - the bread and butter of the Mocked Service. It's link that allows
|
|
||||||
* to receive mocked response from the server and use it to mock!
|
|
||||||
* @param requestEntity Logs the data of request
|
|
||||||
* @param clientUUID the key-uuid of given set of messages
|
|
||||||
* @param mockedResponseId unique id of given message
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@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())));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -3,11 +3,12 @@ package com.release11.klaus.controller;
|
|||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.release11.klaus.model.MockedMessageDto;
|
import com.release11.klaus.model.MockedMessageDto;
|
||||||
import com.release11.klaus.service.KlausService;
|
import com.release11.klaus.service.KlausService;
|
||||||
|
import com.release11.klaus.utilis.BusinessKey;
|
||||||
|
import com.release11.klaus.utilis.TrackingClient;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.*;
|
||||||
import org.springframework.http.ResponseEntity;
|
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
@@ -154,5 +155,31 @@ public class MockController {
|
|||||||
return ++highestId;
|
return ++highestId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* It's one of the most important features - the bread and butter of the Mocked Service. It's link that allows
|
||||||
|
* to receive mocked response from the server and use it to mock!
|
||||||
|
* @param requestEntity Logs the data of request
|
||||||
|
* @param clientUUID the key-uuid of given set of messages
|
||||||
|
* @param mockedResponseId unique id of given message
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@GetMapping(value = "/klaus/v1/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())));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user