Commit b34399af authored by Trishna Saeharaseelan's avatar Trishna Saeharaseelan
Browse files

Merge branch '28-add-binary-message-format' into 'dev'

feat: support binary payload

Closes #28

See merge request !19
from formats.encoded import encoded_schema
mission_plan_encoded_schema = encoded_schema
mission_plan_encoded_schema["properties"]["message_type"]["enum"] = [
"mission_plan_encoded"
]
mission_plan_encoded_schema["properties"]["message_type"][
"example"
] = "mission_plan_encoded"
from formats.encoded import encoded_schema
observation_encoded_schema = encoded_schema
observation_encoded_schema["properties"]["message_type"]["enum"] = [
"observation_encoded"
]
observation_encoded_schema["properties"]["message_type"][
"example"
] = "observation_encoded"
......@@ -33,6 +33,7 @@ emergency_schema = {
"example": 10.0,
},
"additional_data": {
"type": "object",
"description": "Any addition fields/data to be added here",
"example": {},
},
......@@ -76,7 +77,7 @@ platform_schema = {
"description": "Maximum altitude set for squad.",
"example": 0.9,
},
"additional_specs": {
"additional_data": {
"description": "Any addition fields/data to be added here",
"example": {"swath_width": 10.0, "scan_type": "DVL"},
"type": "object",
......
from formats.encoded import encoded_schema
platform_status_encoded_schema = encoded_schema
platform_status_encoded_schema["properties"]["message_type"]["enum"] = [
"platform_status_encoded"
]
platform_status_encoded_schema["properties"]["message_type"][
"example"
] = "platform_status_encoded"
from formats import message_header
from formats.mission_plan import mission_plan_schema
from formats.mission_plan_encoded import mission_plan_encoded_schema
from formats.observation import observation_schema
from formats.observation_encoded import observation_encoded_schema
from formats.planning_configuration import planning_configuration_schema
from formats.platform_status import platform_status_schema
from formats.platform_status_encoded import platform_status_encoded_schema
from formats.acknowledgement import acknowledgement_schema
from flasgger import Swagger
......@@ -51,26 +54,38 @@ swagger_config = {
"propertyName": "message_type",
"mapping": {
"mission_plan": "#/components/schemas/mission_plan",
"mission_plan_encoded": "#/components/schemas/"
+ "mission_plan_encoded",
"observation": "#/components/schemas/observation",
"observation_encoded": "#/components/schemas/"
+ "observation_encoded",
"planning_configuration": "#/components/schemas/"
+ "planning_configuration",
"platform_status": "#/components/schemas/platform_status",
"platform_status_encoded": "#/components/schemas/"
+ "platform_status_encoded",
"acknowledgement": "#/components/schemas/acknowledgement",
},
},
"oneOf": [
{"$ref": "#/components/schemas/acknowledgement"},
{"$ref": "#/components/schemas/mission_plan"},
{"$ref": "#/components/schemas/mission_plan_encoded"},
{"$ref": "#/components/schemas/observation"},
{"$ref": "#/components/schemas/observation_encoded"},
{"$ref": "#/components/schemas/planning_configuration"},
{"$ref": "#/components/schemas/platform_status"},
{"$ref": "#/components/schemas/platform_status_encoded"},
],
},
"header": message_header,
"mission_plan": mission_plan_schema,
"mission_plan_encoded": mission_plan_encoded_schema,
"observation": observation_schema,
"observation_encoded": observation_encoded_schema,
"planning_configuration": planning_configuration_schema,
"platform_status": platform_status_schema,
"platform_status_encoded": platform_status_encoded_schema,
"acknowledgement": acknowledgement_schema,
}
},
......
This diff is collapsed.
......@@ -6,5 +6,6 @@ services:
dockerfile: tests-js/docker/Dockerfile
container_name: soar_js_test
volumes:
- ../../:/app
- ../../examples:/app/examples
- ../../project:/app/project
command: "yarn test"
......@@ -3,7 +3,7 @@ const Validator = require('swagger-model-validator');
const OpenAPISchemaValidator = require('openapi-schema-validator').default;
const getSchema = () => {
const schema = require(`${__dirname}/../projects/soar/swagger.json`);
const schema = require(`${__dirname}/../project/soar/swagger.json`);
return schema;
};
......@@ -46,9 +46,11 @@ describe('examples validate', () => {
validation = validateMessage(message, schema);
valid = validation.valid;
if (!valid) {
console.log(`validation: ${messageFile}`, validation);
console.log(`validation: ${messageFile}`, validation.GetErrorMessages());
payloadValidation = validateMessage(message.payload, schema, message.payload.message_type)
console.log(`payload ${message.payload.message_type}`, payloadValidation);
if (!payloadValidation.valid) {
console.log(`payload ${message.payload.message_type}`, payloadValidation.GetErrorMessages());
}
}
expect(valid).toBe(true);
});
......
......@@ -311,7 +311,7 @@ platform_schema = {
"description": "Maximum altitude set for squad.",
"example": 0.9,
},
"additional_specs": {
"additional_data": {
"description": "Any addition fields/data to be added here",
"example": {"swath_width": 10.0, "scan_type": "DVL"},
},
......
......@@ -322,7 +322,7 @@
"description": "Squad consists of these platforms",
"items": {
"properties": {
"additional_specs": {
"additional_data": {
"description": "Any addition fields/data to be added here",
"example": {
"scan_type": "DVL",
......
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