From 5dddde3973e4a93158bdf90520dbac8e0e39bbfa Mon Sep 17 00:00:00 2001 From: csba1652 <Bilal.Hassan@student.uibk.ac.at> Date: Fri, 14 Apr 2023 11:16:53 +0100 Subject: [PATCH] working on last meetings ecology suggestions --- api-doc.json | 2724 +---------------- projects/generated-api/src/.gitignore | 4 + projects/generated-api/src/.npmignore | 5 + .../generated-api/src/.swagger-codegen-ignore | 23 + .../src/.swagger-codegen/VERSION | 1 + projects/generated-api/src/api.module.ts | 45 + projects/generated-api/src/api/api.ts | 15 + .../src/api/clientController.service.ts | 352 +++ .../src/api/hostController.service.ts | 352 +++ .../src/api/sensorController.service.ts | 311 ++ .../src/api/sensorGroupController.service.ts | 352 +++ .../src/api/serverController.service.ts | 329 ++ .../src/api/stationController.service.ts | 352 +++ .../src/api/userController.service.ts | 330 ++ projects/generated-api/src/configuration.ts | 79 + projects/generated-api/src/encoder.ts | 20 + projects/generated-api/src/git_push.sh | 52 + projects/generated-api/src/index.ts | 5 + projects/generated-api/src/model/avgMinMax.ts | 40 + projects/generated-api/src/model/client.ts | 20 + .../src/model/dendrometerDailyValue.ts | 21 + .../src/model/dendrometerDeltaR.ts | 16 + .../generated-api/src/model/dendrometerMDS.ts | 16 + .../src/model/dendrometerValue.ts | 26 + projects/generated-api/src/model/document.ts | 19 + projects/generated-api/src/model/host.ts | 18 + .../src/model/levelOneResponse.ts | 20 + projects/generated-api/src/model/location.ts | 18 + .../generated-api/src/model/measurement.ts | 53 + projects/generated-api/src/model/models.ts | 20 + .../generated-api/src/model/readingPayload.ts | 55 + .../generated-api/src/model/readingValue.ts | 35 + projects/generated-api/src/model/role.ts | 24 + projects/generated-api/src/model/sensor.ts | 23 + .../generated-api/src/model/sensorGroup.ts | 38 + projects/generated-api/src/model/station.ts | 23 + projects/generated-api/src/model/sumOrAvg.ts | 43 + .../src/model/threePhaseDendrometer.ts | 18 + .../src/model/userLoginRequest.ts | 16 + .../src/model/userSignUpRequest.ts | 18 + .../src/model/valueWithTimestamp.ts | 16 + projects/generated-api/src/ng-package.json | 6 + projects/generated-api/src/variables.ts | 9 + .../src/api/serverController.service.ts | 32 +- src/app/app.component.html | 10 +- src/app/app.module.ts | 4 +- .../components/lev0Ver2/lev0.component.html | 38 +- .../components/lev0Ver2/lev0.component.ts | 41 +- .../pro-view/pro-view.component.html | 10 +- .../components/pro-view/pro-view.component.ts | 34 +- src/app/shared/auth/interceptor.service.ts | 12 +- 51 files changed, 3372 insertions(+), 2771 deletions(-) create mode 100644 projects/generated-api/src/.gitignore create mode 100644 projects/generated-api/src/.npmignore create mode 100644 projects/generated-api/src/.swagger-codegen-ignore create mode 100644 projects/generated-api/src/.swagger-codegen/VERSION create mode 100644 projects/generated-api/src/api.module.ts create mode 100644 projects/generated-api/src/api/api.ts create mode 100644 projects/generated-api/src/api/clientController.service.ts create mode 100644 projects/generated-api/src/api/hostController.service.ts create mode 100644 projects/generated-api/src/api/sensorController.service.ts create mode 100644 projects/generated-api/src/api/sensorGroupController.service.ts create mode 100644 projects/generated-api/src/api/serverController.service.ts create mode 100644 projects/generated-api/src/api/stationController.service.ts create mode 100644 projects/generated-api/src/api/userController.service.ts create mode 100644 projects/generated-api/src/configuration.ts create mode 100644 projects/generated-api/src/encoder.ts create mode 100644 projects/generated-api/src/git_push.sh create mode 100644 projects/generated-api/src/index.ts create mode 100644 projects/generated-api/src/model/avgMinMax.ts create mode 100644 projects/generated-api/src/model/client.ts create mode 100644 projects/generated-api/src/model/dendrometerDailyValue.ts create mode 100644 projects/generated-api/src/model/dendrometerDeltaR.ts create mode 100644 projects/generated-api/src/model/dendrometerMDS.ts create mode 100644 projects/generated-api/src/model/dendrometerValue.ts create mode 100644 projects/generated-api/src/model/document.ts create mode 100644 projects/generated-api/src/model/host.ts create mode 100644 projects/generated-api/src/model/levelOneResponse.ts create mode 100644 projects/generated-api/src/model/location.ts create mode 100644 projects/generated-api/src/model/measurement.ts create mode 100644 projects/generated-api/src/model/models.ts create mode 100644 projects/generated-api/src/model/readingPayload.ts create mode 100644 projects/generated-api/src/model/readingValue.ts create mode 100644 projects/generated-api/src/model/role.ts create mode 100644 projects/generated-api/src/model/sensor.ts create mode 100644 projects/generated-api/src/model/sensorGroup.ts create mode 100644 projects/generated-api/src/model/station.ts create mode 100644 projects/generated-api/src/model/sumOrAvg.ts create mode 100644 projects/generated-api/src/model/threePhaseDendrometer.ts create mode 100644 projects/generated-api/src/model/userLoginRequest.ts create mode 100644 projects/generated-api/src/model/userSignUpRequest.ts create mode 100644 projects/generated-api/src/model/valueWithTimestamp.ts create mode 100644 projects/generated-api/src/ng-package.json create mode 100644 projects/generated-api/src/variables.ts diff --git a/api-doc.json b/api-doc.json index e473a2c..c126a16 100644 --- a/api-doc.json +++ b/api-doc.json @@ -1,2724 +1,2 @@ -{ - "openapi": "3.0.1", - "info": { - "title": "OpenAPI definition", - "version": "v0" - }, - "servers": [ - { - "url": "http://localhost:8080", - "description": "Generated server url" - } - ], - "paths": { - "/api/v1/station/update/{id}": { - "put": { - "tags": [ - "station-controller" - ], - "operationId": "update", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Station" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/Station" - } - } - } - } - } - } - }, - "/api/v1/sensor/update/{id}": { - "put": { - "tags": [ - "sensor-controller" - ], - "operationId": "updateSensor", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Sensor" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "object" - } - } - } - } - } - } - }, - "/api/v1/sensor/group/update/{id}": { - "put": { - "tags": [ - "sensor-group-controller" - ], - "operationId": "updateSensorGroup", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SensorGroup" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "object" - } - } - } - } - } - } - }, - "/api/v1/host/update/{id}": { - "put": { - "tags": [ - "host-controller" - ], - "operationId": "update_1", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Host" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/Host" - } - } - } - } - } - } - }, - "/api/v1/client/update/{id}": { - "put": { - "tags": [ - "client-controller" - ], - "operationId": "updateClient", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Client" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/Client" - } - } - } - } - } - } - }, - "/api/v1/auth/user/update/{id}": { - "put": { - "tags": [ - "user-controller" - ], - "operationId": "updateUser", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserSignUpRequest" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "object" - } - } - } - } - } - } - }, - "/api/v1/station/add": { - "post": { - "tags": [ - "station-controller" - ], - "operationId": "save", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Station" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/Station" - } - } - } - } - } - } - }, - "/api/v1/server/add": { - "post": { - "tags": [ - "server-controller" - ], - "summary": "Add a reading to the database", - "operationId": "addReading", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ReadingPayload" - } - } - }, - "required": true - }, - "responses": { - "400": { - "description": "Reading not added", - "content": { - "*/*": { - "schema": { - "type": "string", - "enum": [ - "100 CONTINUE", - "101 SWITCHING_PROTOCOLS", - "102 PROCESSING", - "103 CHECKPOINT", - "200 OK", - "201 CREATED", - "202 ACCEPTED", - "203 NON_AUTHORITATIVE_INFORMATION", - "204 NO_CONTENT", - "205 RESET_CONTENT", - "206 PARTIAL_CONTENT", - "207 MULTI_STATUS", - "208 ALREADY_REPORTED", - "226 IM_USED", - "300 MULTIPLE_CHOICES", - "301 MOVED_PERMANENTLY", - "302 FOUND", - "302 MOVED_TEMPORARILY", - "303 SEE_OTHER", - "304 NOT_MODIFIED", - "305 USE_PROXY", - "307 TEMPORARY_REDIRECT", - "308 PERMANENT_REDIRECT", - "400 BAD_REQUEST", - "401 UNAUTHORIZED", - "402 PAYMENT_REQUIRED", - "403 FORBIDDEN", - "404 NOT_FOUND", - "405 METHOD_NOT_ALLOWED", - "406 NOT_ACCEPTABLE", - "407 PROXY_AUTHENTICATION_REQUIRED", - "408 REQUEST_TIMEOUT", - "409 CONFLICT", - "410 GONE", - "411 LENGTH_REQUIRED", - "412 PRECONDITION_FAILED", - "413 PAYLOAD_TOO_LARGE", - "413 REQUEST_ENTITY_TOO_LARGE", - "414 URI_TOO_LONG", - "414 REQUEST_URI_TOO_LONG", - "415 UNSUPPORTED_MEDIA_TYPE", - "416 REQUESTED_RANGE_NOT_SATISFIABLE", - "417 EXPECTATION_FAILED", - "418 I_AM_A_TEAPOT", - "419 INSUFFICIENT_SPACE_ON_RESOURCE", - "420 METHOD_FAILURE", - "421 DESTINATION_LOCKED", - "422 UNPROCESSABLE_ENTITY", - "423 LOCKED", - "424 FAILED_DEPENDENCY", - "425 TOO_EARLY", - "426 UPGRADE_REQUIRED", - "428 PRECONDITION_REQUIRED", - "429 TOO_MANY_REQUESTS", - "431 REQUEST_HEADER_FIELDS_TOO_LARGE", - "451 UNAVAILABLE_FOR_LEGAL_REASONS", - "500 INTERNAL_SERVER_ERROR", - "501 NOT_IMPLEMENTED", - "502 BAD_GATEWAY", - "503 SERVICE_UNAVAILABLE", - "504 GATEWAY_TIMEOUT", - "505 HTTP_VERSION_NOT_SUPPORTED", - "506 VARIANT_ALSO_NEGOTIATES", - "507 INSUFFICIENT_STORAGE", - "508 LOOP_DETECTED", - "509 BANDWIDTH_LIMIT_EXCEEDED", - "510 NOT_EXTENDED", - "511 NETWORK_AUTHENTICATION_REQUIRED" - ] - } - } - } - }, - "200": { - "description": "Reading added successfully", - "content": { - "*/*": { - "schema": { - "type": "string", - "enum": [ - "100 CONTINUE", - "101 SWITCHING_PROTOCOLS", - "102 PROCESSING", - "103 CHECKPOINT", - "200 OK", - "201 CREATED", - "202 ACCEPTED", - "203 NON_AUTHORITATIVE_INFORMATION", - "204 NO_CONTENT", - "205 RESET_CONTENT", - "206 PARTIAL_CONTENT", - "207 MULTI_STATUS", - "208 ALREADY_REPORTED", - "226 IM_USED", - "300 MULTIPLE_CHOICES", - "301 MOVED_PERMANENTLY", - "302 FOUND", - "302 MOVED_TEMPORARILY", - "303 SEE_OTHER", - "304 NOT_MODIFIED", - "305 USE_PROXY", - "307 TEMPORARY_REDIRECT", - "308 PERMANENT_REDIRECT", - "400 BAD_REQUEST", - "401 UNAUTHORIZED", - "402 PAYMENT_REQUIRED", - "403 FORBIDDEN", - "404 NOT_FOUND", - "405 METHOD_NOT_ALLOWED", - "406 NOT_ACCEPTABLE", - "407 PROXY_AUTHENTICATION_REQUIRED", - "408 REQUEST_TIMEOUT", - "409 CONFLICT", - "410 GONE", - "411 LENGTH_REQUIRED", - "412 PRECONDITION_FAILED", - "413 PAYLOAD_TOO_LARGE", - "413 REQUEST_ENTITY_TOO_LARGE", - "414 URI_TOO_LONG", - "414 REQUEST_URI_TOO_LONG", - "415 UNSUPPORTED_MEDIA_TYPE", - "416 REQUESTED_RANGE_NOT_SATISFIABLE", - "417 EXPECTATION_FAILED", - "418 I_AM_A_TEAPOT", - "419 INSUFFICIENT_SPACE_ON_RESOURCE", - "420 METHOD_FAILURE", - "421 DESTINATION_LOCKED", - "422 UNPROCESSABLE_ENTITY", - "423 LOCKED", - "424 FAILED_DEPENDENCY", - "425 TOO_EARLY", - "426 UPGRADE_REQUIRED", - "428 PRECONDITION_REQUIRED", - "429 TOO_MANY_REQUESTS", - "431 REQUEST_HEADER_FIELDS_TOO_LARGE", - "451 UNAVAILABLE_FOR_LEGAL_REASONS", - "500 INTERNAL_SERVER_ERROR", - "501 NOT_IMPLEMENTED", - "502 BAD_GATEWAY", - "503 SERVICE_UNAVAILABLE", - "504 GATEWAY_TIMEOUT", - "505 HTTP_VERSION_NOT_SUPPORTED", - "506 VARIANT_ALSO_NEGOTIATES", - "507 INSUFFICIENT_STORAGE", - "508 LOOP_DETECTED", - "509 BANDWIDTH_LIMIT_EXCEEDED", - "510 NOT_EXTENDED", - "511 NETWORK_AUTHENTICATION_REQUIRED" - ] - } - } - } - } - } - } - }, - "/api/v1/sensor/group/add": { - "post": { - "tags": [ - "sensor-group-controller" - ], - "operationId": "addSensorGroup", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SensorGroup" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "object" - } - } - } - } - } - } - }, - "/api/v1/sensor/add": { - "post": { - "tags": [ - "sensor-controller" - ], - "operationId": "addSensor", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Sensor" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "object" - } - } - } - } - } - } - }, - "/api/v1/host/add": { - "post": { - "tags": [ - "host-controller" - ], - "operationId": "save_1", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Host" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/Host" - } - } - } - } - } - } - }, - "/api/v1/client/add": { - "post": { - "tags": [ - "client-controller" - ], - "operationId": "saveClient", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Client" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/Client" - } - } - } - } - } - } - }, - "/api/v1/auth/signup": { - "post": { - "tags": [ - "user-controller" - ], - "operationId": "registerUser", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserSignUpRequest" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "object" - } - } - } - } - } - } - }, - "/api/v1/auth/login": { - "post": { - "tags": [ - "user-controller" - ], - "operationId": "authenticateUser", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserLoginRequest" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "object" - } - } - } - } - } - } - }, - "/api/v1/auth/add/role": { - "post": { - "tags": [ - "user-controller" - ], - "operationId": "addRole", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Role" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "object" - } - } - } - } - } - } - }, - "/api/v1/station/{id}": { - "get": { - "tags": [ - "station-controller" - ], - "operationId": "getById", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/Station" - } - } - } - } - } - } - }, - "/api/v1/station/name/{name}": { - "get": { - "tags": [ - "station-controller" - ], - "operationId": "getByName", - "parameters": [ - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/Station" - } - } - } - } - } - } - }, - "/api/v1/station/all": { - "get": { - "tags": [ - "station-controller" - ], - "operationId": "getAll", - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Station" - } - } - } - } - } - } - } - }, - "/api/v1/server/get/sensor/range": { - "get": { - "tags": [ - "server-controller" - ], - "summary": "Get readings by sensor name and time range", - "operationId": "getReadingsBySensorIdAndTimeRange", - "parameters": [ - { - "name": "sensorId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "from", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "to", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "403": { - "description": "Accessing the resource you were trying to reach is forbidden", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Document" - } - } - } - } - }, - "401": { - "description": "You are not authorized to view the resource", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Document" - } - } - } - } - }, - "404": { - "description": "The resource you were trying to reach is not found", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Document" - } - } - } - } - }, - "200": { - "description": "Successfully retrieved readings by sensor name and time range", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Document" - } - } - } - } - } - } - } - }, - "/api/v1/server/get/sensor/error/range": { - "get": { - "tags": [ - "server-controller" - ], - "summary": "Get readings by sensor name and error type and time range", - "operationId": "getReadingsBySensorIdAndErrorTypeAndTimeRange", - "parameters": [ - { - "name": "sensorId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "errorType", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "from", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "date-time" - } - }, - { - "name": "to", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "date-time" - } - } - ], - "responses": { - "200": { - "description": "Successfully retrieved readings by sensor name and error type and time range", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Document" - } - } - } - } - }, - "403": { - "description": "Accessing the resource you were trying to reach is forbidden", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Document" - } - } - } - } - }, - "401": { - "description": "You are not authorized to view the resource", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Document" - } - } - } - } - }, - "404": { - "description": "The resource you were trying to reach is not found", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Document" - } - } - } - } - } - } - } - }, - "/api/v1/server/get/lvl1/{station}": { - "get": { - "tags": [ - "server-controller" - ], - "summary": "Get level one response for a group id and a time range", - "operationId": "getLevelOneResponseForGroupAndTimeRange", - "parameters": [ - { - "name": "station", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "date", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "date-time" - } - } - ], - "responses": { - "200": { - "description": "Successfully retrieved level one response for a group id and a time range", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/LevelOneResponse" - } - } - } - }, - "403": { - "description": "Accessing the resource you were trying to reach is forbidden", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/LevelOneResponse" - } - } - } - }, - "401": { - "description": "You are not authorized to view the resource", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/LevelOneResponse" - } - } - } - }, - "404": { - "description": "The resource you were trying to reach is not found", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/LevelOneResponse" - } - } - } - } - } - } - }, - "/api/v1/sensor/{id}": { - "get": { - "tags": [ - "sensor-controller" - ], - "operationId": "getSensorById", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/Sensor" - } - } - } - } - } - } - }, - "/api/v1/sensor/group/{id}": { - "get": { - "tags": [ - "sensor-group-controller" - ], - "operationId": "getSensorGroupById", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/SensorGroup" - } - } - } - } - } - } - }, - "/api/v1/sensor/group/name/{name}": { - "get": { - "tags": [ - "sensor-group-controller" - ], - "operationId": "getSensorGroupByName", - "parameters": [ - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/SensorGroup" - } - } - } - } - } - } - }, - "/api/v1/sensor/group/all": { - "get": { - "tags": [ - "sensor-group-controller" - ], - "operationId": "getAllSensorGroups", - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SensorGroup" - } - } - } - } - } - } - } - }, - "/api/v1/sensor/all": { - "get": { - "tags": [ - "sensor-controller" - ], - "operationId": "getAllSensors", - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Sensor" - } - } - } - } - } - } - } - }, - "/api/v1/host/{id}": { - "get": { - "tags": [ - "host-controller" - ], - "operationId": "getById_1", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/Host" - } - } - } - } - } - } - }, - "/api/v1/host/name/{name}": { - "get": { - "tags": [ - "host-controller" - ], - "operationId": "getByName_1", - "parameters": [ - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/Host" - } - } - } - } - } - } - }, - "/api/v1/host/all": { - "get": { - "tags": [ - "host-controller" - ], - "operationId": "getAll_1", - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Host" - } - } - } - } - } - } - } - }, - "/api/v1/client/{id}": { - "get": { - "tags": [ - "client-controller" - ], - "operationId": "getClientById", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/Client" - } - } - } - } - } - } - }, - "/api/v1/client/name/{name}": { - "get": { - "tags": [ - "client-controller" - ], - "operationId": "getClientByName", - "parameters": [ - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/Client" - } - } - } - } - } - } - }, - "/api/v1/client/all": { - "get": { - "tags": [ - "client-controller" - ], - "operationId": "getAllClients", - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Client" - } - } - } - } - } - } - } - }, - "/api/v1/auth/users": { - "get": { - "tags": [ - "user-controller" - ], - "operationId": "getAllUsers", - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "object" - } - } - } - } - } - } - }, - "/api/v1/station/delete/{id}": { - "delete": { - "tags": [ - "station-controller" - ], - "operationId": "delete", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "string", - "enum": [ - "100 CONTINUE", - "101 SWITCHING_PROTOCOLS", - "102 PROCESSING", - "103 CHECKPOINT", - "200 OK", - "201 CREATED", - "202 ACCEPTED", - "203 NON_AUTHORITATIVE_INFORMATION", - "204 NO_CONTENT", - "205 RESET_CONTENT", - "206 PARTIAL_CONTENT", - "207 MULTI_STATUS", - "208 ALREADY_REPORTED", - "226 IM_USED", - "300 MULTIPLE_CHOICES", - "301 MOVED_PERMANENTLY", - "302 FOUND", - "302 MOVED_TEMPORARILY", - "303 SEE_OTHER", - "304 NOT_MODIFIED", - "305 USE_PROXY", - "307 TEMPORARY_REDIRECT", - "308 PERMANENT_REDIRECT", - "400 BAD_REQUEST", - "401 UNAUTHORIZED", - "402 PAYMENT_REQUIRED", - "403 FORBIDDEN", - "404 NOT_FOUND", - "405 METHOD_NOT_ALLOWED", - "406 NOT_ACCEPTABLE", - "407 PROXY_AUTHENTICATION_REQUIRED", - "408 REQUEST_TIMEOUT", - "409 CONFLICT", - "410 GONE", - "411 LENGTH_REQUIRED", - "412 PRECONDITION_FAILED", - "413 PAYLOAD_TOO_LARGE", - "413 REQUEST_ENTITY_TOO_LARGE", - "414 URI_TOO_LONG", - "414 REQUEST_URI_TOO_LONG", - "415 UNSUPPORTED_MEDIA_TYPE", - "416 REQUESTED_RANGE_NOT_SATISFIABLE", - "417 EXPECTATION_FAILED", - "418 I_AM_A_TEAPOT", - "419 INSUFFICIENT_SPACE_ON_RESOURCE", - "420 METHOD_FAILURE", - "421 DESTINATION_LOCKED", - "422 UNPROCESSABLE_ENTITY", - "423 LOCKED", - "424 FAILED_DEPENDENCY", - "425 TOO_EARLY", - "426 UPGRADE_REQUIRED", - "428 PRECONDITION_REQUIRED", - "429 TOO_MANY_REQUESTS", - "431 REQUEST_HEADER_FIELDS_TOO_LARGE", - "451 UNAVAILABLE_FOR_LEGAL_REASONS", - "500 INTERNAL_SERVER_ERROR", - "501 NOT_IMPLEMENTED", - "502 BAD_GATEWAY", - "503 SERVICE_UNAVAILABLE", - "504 GATEWAY_TIMEOUT", - "505 HTTP_VERSION_NOT_SUPPORTED", - "506 VARIANT_ALSO_NEGOTIATES", - "507 INSUFFICIENT_STORAGE", - "508 LOOP_DETECTED", - "509 BANDWIDTH_LIMIT_EXCEEDED", - "510 NOT_EXTENDED", - "511 NETWORK_AUTHENTICATION_REQUIRED" - ] - } - } - } - } - } - } - }, - "/api/v1/station/delete/all": { - "delete": { - "tags": [ - "station-controller" - ], - "operationId": "deleteAll", - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "string", - "enum": [ - "100 CONTINUE", - "101 SWITCHING_PROTOCOLS", - "102 PROCESSING", - "103 CHECKPOINT", - "200 OK", - "201 CREATED", - "202 ACCEPTED", - "203 NON_AUTHORITATIVE_INFORMATION", - "204 NO_CONTENT", - "205 RESET_CONTENT", - "206 PARTIAL_CONTENT", - "207 MULTI_STATUS", - "208 ALREADY_REPORTED", - "226 IM_USED", - "300 MULTIPLE_CHOICES", - "301 MOVED_PERMANENTLY", - "302 FOUND", - "302 MOVED_TEMPORARILY", - "303 SEE_OTHER", - "304 NOT_MODIFIED", - "305 USE_PROXY", - "307 TEMPORARY_REDIRECT", - "308 PERMANENT_REDIRECT", - "400 BAD_REQUEST", - "401 UNAUTHORIZED", - "402 PAYMENT_REQUIRED", - "403 FORBIDDEN", - "404 NOT_FOUND", - "405 METHOD_NOT_ALLOWED", - "406 NOT_ACCEPTABLE", - "407 PROXY_AUTHENTICATION_REQUIRED", - "408 REQUEST_TIMEOUT", - "409 CONFLICT", - "410 GONE", - "411 LENGTH_REQUIRED", - "412 PRECONDITION_FAILED", - "413 PAYLOAD_TOO_LARGE", - "413 REQUEST_ENTITY_TOO_LARGE", - "414 URI_TOO_LONG", - "414 REQUEST_URI_TOO_LONG", - "415 UNSUPPORTED_MEDIA_TYPE", - "416 REQUESTED_RANGE_NOT_SATISFIABLE", - "417 EXPECTATION_FAILED", - "418 I_AM_A_TEAPOT", - "419 INSUFFICIENT_SPACE_ON_RESOURCE", - "420 METHOD_FAILURE", - "421 DESTINATION_LOCKED", - "422 UNPROCESSABLE_ENTITY", - "423 LOCKED", - "424 FAILED_DEPENDENCY", - "425 TOO_EARLY", - "426 UPGRADE_REQUIRED", - "428 PRECONDITION_REQUIRED", - "429 TOO_MANY_REQUESTS", - "431 REQUEST_HEADER_FIELDS_TOO_LARGE", - "451 UNAVAILABLE_FOR_LEGAL_REASONS", - "500 INTERNAL_SERVER_ERROR", - "501 NOT_IMPLEMENTED", - "502 BAD_GATEWAY", - "503 SERVICE_UNAVAILABLE", - "504 GATEWAY_TIMEOUT", - "505 HTTP_VERSION_NOT_SUPPORTED", - "506 VARIANT_ALSO_NEGOTIATES", - "507 INSUFFICIENT_STORAGE", - "508 LOOP_DETECTED", - "509 BANDWIDTH_LIMIT_EXCEEDED", - "510 NOT_EXTENDED", - "511 NETWORK_AUTHENTICATION_REQUIRED" - ] - } - } - } - } - } - } - }, - "/api/v1/server/delete/all": { - "delete": { - "tags": [ - "server-controller" - ], - "summary": "Delete all readings from database", - "operationId": "deleteAllReadings", - "responses": { - "200": { - "description": "Successfully deleted all readings from database", - "content": { - "*/*": { - "schema": { - "type": "string", - "enum": [ - "100 CONTINUE", - "101 SWITCHING_PROTOCOLS", - "102 PROCESSING", - "103 CHECKPOINT", - "200 OK", - "201 CREATED", - "202 ACCEPTED", - "203 NON_AUTHORITATIVE_INFORMATION", - "204 NO_CONTENT", - "205 RESET_CONTENT", - "206 PARTIAL_CONTENT", - "207 MULTI_STATUS", - "208 ALREADY_REPORTED", - "226 IM_USED", - "300 MULTIPLE_CHOICES", - "301 MOVED_PERMANENTLY", - "302 FOUND", - "302 MOVED_TEMPORARILY", - "303 SEE_OTHER", - "304 NOT_MODIFIED", - "305 USE_PROXY", - "307 TEMPORARY_REDIRECT", - "308 PERMANENT_REDIRECT", - "400 BAD_REQUEST", - "401 UNAUTHORIZED", - "402 PAYMENT_REQUIRED", - "403 FORBIDDEN", - "404 NOT_FOUND", - "405 METHOD_NOT_ALLOWED", - "406 NOT_ACCEPTABLE", - "407 PROXY_AUTHENTICATION_REQUIRED", - "408 REQUEST_TIMEOUT", - "409 CONFLICT", - "410 GONE", - "411 LENGTH_REQUIRED", - "412 PRECONDITION_FAILED", - "413 PAYLOAD_TOO_LARGE", - "413 REQUEST_ENTITY_TOO_LARGE", - "414 URI_TOO_LONG", - "414 REQUEST_URI_TOO_LONG", - "415 UNSUPPORTED_MEDIA_TYPE", - "416 REQUESTED_RANGE_NOT_SATISFIABLE", - "417 EXPECTATION_FAILED", - "418 I_AM_A_TEAPOT", - "419 INSUFFICIENT_SPACE_ON_RESOURCE", - "420 METHOD_FAILURE", - "421 DESTINATION_LOCKED", - "422 UNPROCESSABLE_ENTITY", - "423 LOCKED", - "424 FAILED_DEPENDENCY", - "425 TOO_EARLY", - "426 UPGRADE_REQUIRED", - "428 PRECONDITION_REQUIRED", - "429 TOO_MANY_REQUESTS", - "431 REQUEST_HEADER_FIELDS_TOO_LARGE", - "451 UNAVAILABLE_FOR_LEGAL_REASONS", - "500 INTERNAL_SERVER_ERROR", - "501 NOT_IMPLEMENTED", - "502 BAD_GATEWAY", - "503 SERVICE_UNAVAILABLE", - "504 GATEWAY_TIMEOUT", - "505 HTTP_VERSION_NOT_SUPPORTED", - "506 VARIANT_ALSO_NEGOTIATES", - "507 INSUFFICIENT_STORAGE", - "508 LOOP_DETECTED", - "509 BANDWIDTH_LIMIT_EXCEEDED", - "510 NOT_EXTENDED", - "511 NETWORK_AUTHENTICATION_REQUIRED" - ] - } - } - } - }, - "403": { - "description": "Accessing the resource you were trying to reach is forbidden", - "content": { - "*/*": { - "schema": { - "type": "string", - "enum": [ - "100 CONTINUE", - "101 SWITCHING_PROTOCOLS", - "102 PROCESSING", - "103 CHECKPOINT", - "200 OK", - "201 CREATED", - "202 ACCEPTED", - "203 NON_AUTHORITATIVE_INFORMATION", - "204 NO_CONTENT", - "205 RESET_CONTENT", - "206 PARTIAL_CONTENT", - "207 MULTI_STATUS", - "208 ALREADY_REPORTED", - "226 IM_USED", - "300 MULTIPLE_CHOICES", - "301 MOVED_PERMANENTLY", - "302 FOUND", - "302 MOVED_TEMPORARILY", - "303 SEE_OTHER", - "304 NOT_MODIFIED", - "305 USE_PROXY", - "307 TEMPORARY_REDIRECT", - "308 PERMANENT_REDIRECT", - "400 BAD_REQUEST", - "401 UNAUTHORIZED", - "402 PAYMENT_REQUIRED", - "403 FORBIDDEN", - "404 NOT_FOUND", - "405 METHOD_NOT_ALLOWED", - "406 NOT_ACCEPTABLE", - "407 PROXY_AUTHENTICATION_REQUIRED", - "408 REQUEST_TIMEOUT", - "409 CONFLICT", - "410 GONE", - "411 LENGTH_REQUIRED", - "412 PRECONDITION_FAILED", - "413 PAYLOAD_TOO_LARGE", - "413 REQUEST_ENTITY_TOO_LARGE", - "414 URI_TOO_LONG", - "414 REQUEST_URI_TOO_LONG", - "415 UNSUPPORTED_MEDIA_TYPE", - "416 REQUESTED_RANGE_NOT_SATISFIABLE", - "417 EXPECTATION_FAILED", - "418 I_AM_A_TEAPOT", - "419 INSUFFICIENT_SPACE_ON_RESOURCE", - "420 METHOD_FAILURE", - "421 DESTINATION_LOCKED", - "422 UNPROCESSABLE_ENTITY", - "423 LOCKED", - "424 FAILED_DEPENDENCY", - "425 TOO_EARLY", - "426 UPGRADE_REQUIRED", - "428 PRECONDITION_REQUIRED", - "429 TOO_MANY_REQUESTS", - "431 REQUEST_HEADER_FIELDS_TOO_LARGE", - "451 UNAVAILABLE_FOR_LEGAL_REASONS", - "500 INTERNAL_SERVER_ERROR", - "501 NOT_IMPLEMENTED", - "502 BAD_GATEWAY", - "503 SERVICE_UNAVAILABLE", - "504 GATEWAY_TIMEOUT", - "505 HTTP_VERSION_NOT_SUPPORTED", - "506 VARIANT_ALSO_NEGOTIATES", - "507 INSUFFICIENT_STORAGE", - "508 LOOP_DETECTED", - "509 BANDWIDTH_LIMIT_EXCEEDED", - "510 NOT_EXTENDED", - "511 NETWORK_AUTHENTICATION_REQUIRED" - ] - } - } - } - }, - "401": { - "description": "You are not authorized to view the resource", - "content": { - "*/*": { - "schema": { - "type": "string", - "enum": [ - "100 CONTINUE", - "101 SWITCHING_PROTOCOLS", - "102 PROCESSING", - "103 CHECKPOINT", - "200 OK", - "201 CREATED", - "202 ACCEPTED", - "203 NON_AUTHORITATIVE_INFORMATION", - "204 NO_CONTENT", - "205 RESET_CONTENT", - "206 PARTIAL_CONTENT", - "207 MULTI_STATUS", - "208 ALREADY_REPORTED", - "226 IM_USED", - "300 MULTIPLE_CHOICES", - "301 MOVED_PERMANENTLY", - "302 FOUND", - "302 MOVED_TEMPORARILY", - "303 SEE_OTHER", - "304 NOT_MODIFIED", - "305 USE_PROXY", - "307 TEMPORARY_REDIRECT", - "308 PERMANENT_REDIRECT", - "400 BAD_REQUEST", - "401 UNAUTHORIZED", - "402 PAYMENT_REQUIRED", - "403 FORBIDDEN", - "404 NOT_FOUND", - "405 METHOD_NOT_ALLOWED", - "406 NOT_ACCEPTABLE", - "407 PROXY_AUTHENTICATION_REQUIRED", - "408 REQUEST_TIMEOUT", - "409 CONFLICT", - "410 GONE", - "411 LENGTH_REQUIRED", - "412 PRECONDITION_FAILED", - "413 PAYLOAD_TOO_LARGE", - "413 REQUEST_ENTITY_TOO_LARGE", - "414 URI_TOO_LONG", - "414 REQUEST_URI_TOO_LONG", - "415 UNSUPPORTED_MEDIA_TYPE", - "416 REQUESTED_RANGE_NOT_SATISFIABLE", - "417 EXPECTATION_FAILED", - "418 I_AM_A_TEAPOT", - "419 INSUFFICIENT_SPACE_ON_RESOURCE", - "420 METHOD_FAILURE", - "421 DESTINATION_LOCKED", - "422 UNPROCESSABLE_ENTITY", - "423 LOCKED", - "424 FAILED_DEPENDENCY", - "425 TOO_EARLY", - "426 UPGRADE_REQUIRED", - "428 PRECONDITION_REQUIRED", - "429 TOO_MANY_REQUESTS", - "431 REQUEST_HEADER_FIELDS_TOO_LARGE", - "451 UNAVAILABLE_FOR_LEGAL_REASONS", - "500 INTERNAL_SERVER_ERROR", - "501 NOT_IMPLEMENTED", - "502 BAD_GATEWAY", - "503 SERVICE_UNAVAILABLE", - "504 GATEWAY_TIMEOUT", - "505 HTTP_VERSION_NOT_SUPPORTED", - "506 VARIANT_ALSO_NEGOTIATES", - "507 INSUFFICIENT_STORAGE", - "508 LOOP_DETECTED", - "509 BANDWIDTH_LIMIT_EXCEEDED", - "510 NOT_EXTENDED", - "511 NETWORK_AUTHENTICATION_REQUIRED" - ] - } - } - } - }, - "404": { - "description": "The resource you were trying to reach is not found", - "content": { - "*/*": { - "schema": { - "type": "string", - "enum": [ - "100 CONTINUE", - "101 SWITCHING_PROTOCOLS", - "102 PROCESSING", - "103 CHECKPOINT", - "200 OK", - "201 CREATED", - "202 ACCEPTED", - "203 NON_AUTHORITATIVE_INFORMATION", - "204 NO_CONTENT", - "205 RESET_CONTENT", - "206 PARTIAL_CONTENT", - "207 MULTI_STATUS", - "208 ALREADY_REPORTED", - "226 IM_USED", - "300 MULTIPLE_CHOICES", - "301 MOVED_PERMANENTLY", - "302 FOUND", - "302 MOVED_TEMPORARILY", - "303 SEE_OTHER", - "304 NOT_MODIFIED", - "305 USE_PROXY", - "307 TEMPORARY_REDIRECT", - "308 PERMANENT_REDIRECT", - "400 BAD_REQUEST", - "401 UNAUTHORIZED", - "402 PAYMENT_REQUIRED", - "403 FORBIDDEN", - "404 NOT_FOUND", - "405 METHOD_NOT_ALLOWED", - "406 NOT_ACCEPTABLE", - "407 PROXY_AUTHENTICATION_REQUIRED", - "408 REQUEST_TIMEOUT", - "409 CONFLICT", - "410 GONE", - "411 LENGTH_REQUIRED", - "412 PRECONDITION_FAILED", - "413 PAYLOAD_TOO_LARGE", - "413 REQUEST_ENTITY_TOO_LARGE", - "414 URI_TOO_LONG", - "414 REQUEST_URI_TOO_LONG", - "415 UNSUPPORTED_MEDIA_TYPE", - "416 REQUESTED_RANGE_NOT_SATISFIABLE", - "417 EXPECTATION_FAILED", - "418 I_AM_A_TEAPOT", - "419 INSUFFICIENT_SPACE_ON_RESOURCE", - "420 METHOD_FAILURE", - "421 DESTINATION_LOCKED", - "422 UNPROCESSABLE_ENTITY", - "423 LOCKED", - "424 FAILED_DEPENDENCY", - "425 TOO_EARLY", - "426 UPGRADE_REQUIRED", - "428 PRECONDITION_REQUIRED", - "429 TOO_MANY_REQUESTS", - "431 REQUEST_HEADER_FIELDS_TOO_LARGE", - "451 UNAVAILABLE_FOR_LEGAL_REASONS", - "500 INTERNAL_SERVER_ERROR", - "501 NOT_IMPLEMENTED", - "502 BAD_GATEWAY", - "503 SERVICE_UNAVAILABLE", - "504 GATEWAY_TIMEOUT", - "505 HTTP_VERSION_NOT_SUPPORTED", - "506 VARIANT_ALSO_NEGOTIATES", - "507 INSUFFICIENT_STORAGE", - "508 LOOP_DETECTED", - "509 BANDWIDTH_LIMIT_EXCEEDED", - "510 NOT_EXTENDED", - "511 NETWORK_AUTHENTICATION_REQUIRED" - ] - } - } - } - } - } - } - }, - "/api/v1/sensor/group/delete/{id}": { - "delete": { - "tags": [ - "sensor-group-controller" - ], - "operationId": "deleteSensorGroup", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "object" - } - } - } - } - } - } - }, - "/api/v1/sensor/group/delete/all": { - "delete": { - "tags": [ - "sensor-group-controller" - ], - "operationId": "deleteAllSensorGroups", - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "object" - } - } - } - } - } - } - }, - "/api/v1/sensor/delete/{id}": { - "delete": { - "tags": [ - "sensor-controller" - ], - "operationId": "deleteSensor", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "object" - } - } - } - } - } - } - }, - "/api/v1/sensor/delete/all": { - "delete": { - "tags": [ - "sensor-controller" - ], - "operationId": "deleteAllSensors", - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "object" - } - } - } - } - } - } - }, - "/api/v1/host/delete/{id}": { - "delete": { - "tags": [ - "host-controller" - ], - "operationId": "delete_1", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "string", - "enum": [ - "100 CONTINUE", - "101 SWITCHING_PROTOCOLS", - "102 PROCESSING", - "103 CHECKPOINT", - "200 OK", - "201 CREATED", - "202 ACCEPTED", - "203 NON_AUTHORITATIVE_INFORMATION", - "204 NO_CONTENT", - "205 RESET_CONTENT", - "206 PARTIAL_CONTENT", - "207 MULTI_STATUS", - "208 ALREADY_REPORTED", - "226 IM_USED", - "300 MULTIPLE_CHOICES", - "301 MOVED_PERMANENTLY", - "302 FOUND", - "302 MOVED_TEMPORARILY", - "303 SEE_OTHER", - "304 NOT_MODIFIED", - "305 USE_PROXY", - "307 TEMPORARY_REDIRECT", - "308 PERMANENT_REDIRECT", - "400 BAD_REQUEST", - "401 UNAUTHORIZED", - "402 PAYMENT_REQUIRED", - "403 FORBIDDEN", - "404 NOT_FOUND", - "405 METHOD_NOT_ALLOWED", - "406 NOT_ACCEPTABLE", - "407 PROXY_AUTHENTICATION_REQUIRED", - "408 REQUEST_TIMEOUT", - "409 CONFLICT", - "410 GONE", - "411 LENGTH_REQUIRED", - "412 PRECONDITION_FAILED", - "413 PAYLOAD_TOO_LARGE", - "413 REQUEST_ENTITY_TOO_LARGE", - "414 URI_TOO_LONG", - "414 REQUEST_URI_TOO_LONG", - "415 UNSUPPORTED_MEDIA_TYPE", - "416 REQUESTED_RANGE_NOT_SATISFIABLE", - "417 EXPECTATION_FAILED", - "418 I_AM_A_TEAPOT", - "419 INSUFFICIENT_SPACE_ON_RESOURCE", - "420 METHOD_FAILURE", - "421 DESTINATION_LOCKED", - "422 UNPROCESSABLE_ENTITY", - "423 LOCKED", - "424 FAILED_DEPENDENCY", - "425 TOO_EARLY", - "426 UPGRADE_REQUIRED", - "428 PRECONDITION_REQUIRED", - "429 TOO_MANY_REQUESTS", - "431 REQUEST_HEADER_FIELDS_TOO_LARGE", - "451 UNAVAILABLE_FOR_LEGAL_REASONS", - "500 INTERNAL_SERVER_ERROR", - "501 NOT_IMPLEMENTED", - "502 BAD_GATEWAY", - "503 SERVICE_UNAVAILABLE", - "504 GATEWAY_TIMEOUT", - "505 HTTP_VERSION_NOT_SUPPORTED", - "506 VARIANT_ALSO_NEGOTIATES", - "507 INSUFFICIENT_STORAGE", - "508 LOOP_DETECTED", - "509 BANDWIDTH_LIMIT_EXCEEDED", - "510 NOT_EXTENDED", - "511 NETWORK_AUTHENTICATION_REQUIRED" - ] - } - } - } - } - } - } - }, - "/api/v1/host/delete/all": { - "delete": { - "tags": [ - "host-controller" - ], - "operationId": "deleteAll_1", - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "string", - "enum": [ - "100 CONTINUE", - "101 SWITCHING_PROTOCOLS", - "102 PROCESSING", - "103 CHECKPOINT", - "200 OK", - "201 CREATED", - "202 ACCEPTED", - "203 NON_AUTHORITATIVE_INFORMATION", - "204 NO_CONTENT", - "205 RESET_CONTENT", - "206 PARTIAL_CONTENT", - "207 MULTI_STATUS", - "208 ALREADY_REPORTED", - "226 IM_USED", - "300 MULTIPLE_CHOICES", - "301 MOVED_PERMANENTLY", - "302 FOUND", - "302 MOVED_TEMPORARILY", - "303 SEE_OTHER", - "304 NOT_MODIFIED", - "305 USE_PROXY", - "307 TEMPORARY_REDIRECT", - "308 PERMANENT_REDIRECT", - "400 BAD_REQUEST", - "401 UNAUTHORIZED", - "402 PAYMENT_REQUIRED", - "403 FORBIDDEN", - "404 NOT_FOUND", - "405 METHOD_NOT_ALLOWED", - "406 NOT_ACCEPTABLE", - "407 PROXY_AUTHENTICATION_REQUIRED", - "408 REQUEST_TIMEOUT", - "409 CONFLICT", - "410 GONE", - "411 LENGTH_REQUIRED", - "412 PRECONDITION_FAILED", - "413 PAYLOAD_TOO_LARGE", - "413 REQUEST_ENTITY_TOO_LARGE", - "414 URI_TOO_LONG", - "414 REQUEST_URI_TOO_LONG", - "415 UNSUPPORTED_MEDIA_TYPE", - "416 REQUESTED_RANGE_NOT_SATISFIABLE", - "417 EXPECTATION_FAILED", - "418 I_AM_A_TEAPOT", - "419 INSUFFICIENT_SPACE_ON_RESOURCE", - "420 METHOD_FAILURE", - "421 DESTINATION_LOCKED", - "422 UNPROCESSABLE_ENTITY", - "423 LOCKED", - "424 FAILED_DEPENDENCY", - "425 TOO_EARLY", - "426 UPGRADE_REQUIRED", - "428 PRECONDITION_REQUIRED", - "429 TOO_MANY_REQUESTS", - "431 REQUEST_HEADER_FIELDS_TOO_LARGE", - "451 UNAVAILABLE_FOR_LEGAL_REASONS", - "500 INTERNAL_SERVER_ERROR", - "501 NOT_IMPLEMENTED", - "502 BAD_GATEWAY", - "503 SERVICE_UNAVAILABLE", - "504 GATEWAY_TIMEOUT", - "505 HTTP_VERSION_NOT_SUPPORTED", - "506 VARIANT_ALSO_NEGOTIATES", - "507 INSUFFICIENT_STORAGE", - "508 LOOP_DETECTED", - "509 BANDWIDTH_LIMIT_EXCEEDED", - "510 NOT_EXTENDED", - "511 NETWORK_AUTHENTICATION_REQUIRED" - ] - } - } - } - } - } - } - }, - "/api/v1/client/delete/{id}": { - "delete": { - "tags": [ - "client-controller" - ], - "operationId": "deleteClient", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "object" - } - } - } - } - } - } - }, - "/api/v1/client/delete/all": { - "delete": { - "tags": [ - "client-controller" - ], - "operationId": "deleteAllClients", - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "object" - } - } - } - } - } - } - }, - "/api/v1/auth/user/delete/{id}": { - "delete": { - "tags": [ - "user-controller" - ], - "operationId": "deleteUser", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "object" - } - } - } - } - } - } - } - }, - "components": { - "schemas": { - "Location": { - "type": "object", - "properties": { - "latitude": { - "type": "number", - "format": "double" - }, - "longitude": { - "type": "number", - "format": "double" - }, - "altitude": { - "type": "number", - "format": "double" - }, - "comment": { - "type": "string" - } - } - }, - "Station": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "location": { - "$ref": "#/components/schemas/Location" - }, - "createdDate": { - "type": "string", - "format": "date-time" - }, - "updatedDate": { - "type": "string", - "format": "date-time" - }, - "host": { - "type": "string" - }, - "clients": { - "type": "array", - "items": { - "type": "string" - } - }, - "diary": { - "type": "string" - } - } - }, - "Measurement": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "maxValue": { - "type": "number", - "format": "double" - }, - "minValue": { - "type": "number", - "format": "double" - }, - "unit": { - "type": "string" - }, - "comment": { - "type": "string" - }, - "precision": { - "type": "integer", - "format": "int32" - }, - "maxReadoutDifference": { - "type": "number", - "format": "double" - }, - "maxFrozenTimeInSeconds": { - "type": "integer", - "format": "int32" - }, - "maxRateOfChange": { - "type": "number", - "format": "double" - }, - "minVariationCoefficient": { - "type": "number", - "format": "double" - }, - "latitude": { - "type": "number", - "format": "double" - }, - "longitude": { - "type": "number", - "format": "double" - }, - "standardMeridianLongitude": { - "type": "number", - "format": "double" - } - } - }, - "Sensor": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "protocol": { - "type": "string" - }, - "protocolAddress": { - "type": "string" - }, - "hardwareName": { - "type": "string" - }, - "uniqueHardwareName": { - "type": "string" - }, - "description": { - "type": "string" - }, - "measurements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Measurement" - } - } - } - }, - "SensorGroup": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "sensors": { - "type": "array", - "items": { - "type": "string" - } - }, - "station": { - "type": "string" - }, - "sensorType": { - "type": "string", - "enum": [ - "PRECIPITATION", - "SOLAR_RADIATION", - "SOIL_MOISTURE", - "SOIL_TEMPERATURE", - "AIR_HUMIDITY", - "AIR_TEMPERATURE", - "DENDROMETER" - ] - } - } - }, - "Host": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "simId": { - "type": "string" - }, - "mac": { - "type": "string" - } - } - }, - "Client": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "mac": { - "type": "string" - }, - "description": { - "type": "string" - }, - "connectionType": { - "type": "string" - }, - "sensors": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "UserSignUpRequest": { - "required": [ - "email", - "password", - "username" - ], - "type": "object", - "properties": { - "username": { - "maxLength": 20, - "minLength": 3, - "type": "string" - }, - "email": { - "maxLength": 50, - "minLength": 0, - "type": "string" - }, - "password": { - "maxLength": 40, - "minLength": 6, - "type": "string" - }, - "roles": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "ReadingPayload": { - "type": "object", - "properties": { - "host": { - "type": "string" - }, - "client": { - "type": "string" - }, - "sensorProtocol": { - "type": "string" - }, - "protocolAddress": { - "type": "string" - }, - "hardwareName": { - "type": "string" - }, - "readings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ReadingValue" - } - }, - "timestamp": { - "type": "integer", - "format": "int64" - } - } - }, - "ReadingValue": { - "type": "object", - "properties": { - "name": { - "type": "string", - "enum": [ - "PRECIPITATION", - "SOLAR_RADIATION", - "SOIL_MOISTURE", - "SOIL_TEMPERATURE", - "AIR_HUMIDITY", - "AIR_TEMPERATURE", - "DENDROMETER" - ] - }, - "value": { - "type": "number", - "format": "double" - } - } - }, - "UserLoginRequest": { - "required": [ - "password", - "username" - ], - "type": "object", - "properties": { - "username": { - "maxLength": 20, - "minLength": 3, - "type": "string" - }, - "password": { - "maxLength": 40, - "minLength": 6, - "type": "string" - } - } - }, - "Role": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string", - "enum": [ - "ROLE_USER", - "ROLE_MANAGER", - "ROLE_ADMIN" - ] - } - } - }, - "Document": { - "type": "object", - "properties": { - "empty": { - "type": "boolean" - } - }, - "additionalProperties": { - "type": "object" - } - }, - "AvgMinMax": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "min": { - "$ref": "#/components/schemas/ValueWithTimestamp" - }, - "max": { - "$ref": "#/components/schemas/ValueWithTimestamp" - }, - "avg": { - "type": "number", - "format": "double" - }, - "sensorType": { - "type": "string", - "enum": [ - "PRECIPITATION", - "SOLAR_RADIATION", - "SOIL_MOISTURE", - "SOIL_TEMPERATURE", - "AIR_HUMIDITY", - "AIR_TEMPERATURE", - "DENDROMETER" - ] - }, - "isSensorGroup": { - "type": "boolean" - } - } - }, - "DendrometerValue": { - "type": "object", - "properties": { - "timestamp": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "number", - "format": "double" - }, - "fluctuationType": { - "type": "string", - "enum": [ - "CONTRACTION", - "EXPANSION", - "STEM_RADIUS_INCREASE", - "STEM_RADIUS_STABLE" - ] - } - } - }, - "LevelOneResponse": { - "type": "object", - "properties": { - "sumOrAvg": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SumOrAvg" - } - }, - "avgMinMax": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AvgMinMax" - } - }, - "threePhaseDendrometer": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ThreePhaseDendrometer" - } - } - } - }, - "SumOrAvg": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "SUM", - "AVG" - ] - }, - "name": { - "type": "string" - }, - "value": { - "type": "number", - "format": "double" - }, - "sensorType": { - "type": "string", - "enum": [ - "PRECIPITATION", - "SOLAR_RADIATION", - "SOIL_MOISTURE", - "SOIL_TEMPERATURE", - "AIR_HUMIDITY", - "AIR_TEMPERATURE", - "DENDROMETER" - ] - }, - "isSensorGroup": { - "type": "boolean" - } - } - }, - "ThreePhaseDendrometer": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "readings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DendrometerValue" - } - }, - "isSensorGroup": { - "type": "boolean" - } - } - }, - "ValueWithTimestamp": { - "type": "object", - "properties": { - "value": { - "type": "number", - "format": "double" - }, - "timestamp": { - "type": "string", - "format": "date-time" - } - } - } - } - } -} +{"openapi":"3.0.1","info":{"title":"OpenAPI definition","version":"v0"},"servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"paths":{"/api/v1/station/update/{id}":{"put":{"tags":["station-controller"],"operationId":"update","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Station"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Station"}}}}}}},"/api/v1/sensor/update/{id}":{"put":{"tags":["sensor-controller"],"operationId":"updateSensor","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sensor"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/v1/sensor/group/update/{id}":{"put":{"tags":["sensor-group-controller"],"operationId":"updateSensorGroup","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SensorGroup"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/v1/host/update/{id}":{"put":{"tags":["host-controller"],"operationId":"update_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Host"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Host"}}}}}}},"/api/v1/client/update/{id}":{"put":{"tags":["client-controller"],"operationId":"updateClient","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Client"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Client"}}}}}}},"/api/v1/auth/user/update/{id}":{"put":{"tags":["user-controller"],"operationId":"updateUser","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserSignUpRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/v1/station/add":{"post":{"tags":["station-controller"],"operationId":"save","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Station"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Station"}}}}}}},"/api/v1/server/add":{"post":{"tags":["server-controller"],"summary":"Add a reading to the database","operationId":"addReading","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReadingPayload"}}},"required":true},"responses":{"400":{"description":"Reading not added","content":{"*/*":{"schema":{"type":"string","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}},"200":{"description":"Reading added successfully","content":{"*/*":{"schema":{"type":"string","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}}}},"/api/v1/sensor/group/add":{"post":{"tags":["sensor-group-controller"],"operationId":"addSensorGroup","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SensorGroup"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/v1/sensor/add":{"post":{"tags":["sensor-controller"],"operationId":"addSensor","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sensor"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/v1/host/add":{"post":{"tags":["host-controller"],"operationId":"save_1","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Host"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Host"}}}}}}},"/api/v1/client/add":{"post":{"tags":["client-controller"],"operationId":"saveClient","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Client"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Client"}}}}}}},"/api/v1/auth/signup":{"post":{"tags":["user-controller"],"operationId":"registerUser","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserSignUpRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/v1/auth/login":{"post":{"tags":["user-controller"],"operationId":"authenticateUser","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserLoginRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/v1/auth/add/role":{"post":{"tags":["user-controller"],"operationId":"addRole","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Role"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/v1/station/{id}":{"get":{"tags":["station-controller"],"operationId":"getById","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Station"}}}}}}},"/api/v1/station/name/{name}":{"get":{"tags":["station-controller"],"operationId":"getByName","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Station"}}}}}}},"/api/v1/station/all":{"get":{"tags":["station-controller"],"operationId":"getAll","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Station"}}}}}}}},"/api/v1/server/get/sensor/range":{"get":{"tags":["server-controller"],"summary":"Get readings by sensor name and time range","operationId":"getReadingsBySensorIdAndTimeRange","parameters":[{"name":"sensorId","in":"query","required":true,"schema":{"type":"string"}},{"name":"from","in":"query","required":true,"schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","required":true,"schema":{"type":"string","format":"date-time"}}],"responses":{"403":{"description":"Accessing the resource you were trying to reach is forbidden","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Document"}}}}},"401":{"description":"You are not authorized to view the resource","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Document"}}}}},"404":{"description":"The resource you were trying to reach is not found","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Document"}}}}},"200":{"description":"Successfully retrieved readings by sensor name and time range","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Document"}}}}}}}},"/api/v1/server/get/sensor/error/range":{"get":{"tags":["server-controller"],"summary":"Get readings by sensor name and error type and time range","operationId":"getReadingsBySensorIdAndErrorTypeAndTimeRange","parameters":[{"name":"sensorId","in":"query","required":true,"schema":{"type":"string"}},{"name":"errorType","in":"query","required":true,"schema":{"type":"string"}},{"name":"from","in":"query","required":true,"schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","required":true,"schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Successfully retrieved readings by sensor name and error type and time range","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Document"}}}}},"403":{"description":"Accessing the resource you were trying to reach is forbidden","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Document"}}}}},"401":{"description":"You are not authorized to view the resource","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Document"}}}}},"404":{"description":"The resource you were trying to reach is not found","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Document"}}}}}}}},"/api/v1/server/get/lvl1/{station}":{"get":{"tags":["server-controller"],"summary":"Get level one response for a group id and a time range","operationId":"getLevelOneResponseForGroupAndTimeRange","parameters":[{"name":"station","in":"path","required":true,"schema":{"type":"string"}},{"name":"date","in":"query","required":true,"schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Successfully retrieved level one response for a group id and a time range","content":{"*/*":{"schema":{"$ref":"#/components/schemas/LevelOneResponse"}}}},"403":{"description":"Accessing the resource you were trying to reach is forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/LevelOneResponse"}}}},"401":{"description":"You are not authorized to view the resource","content":{"*/*":{"schema":{"$ref":"#/components/schemas/LevelOneResponse"}}}},"404":{"description":"The resource you were trying to reach is not found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/LevelOneResponse"}}}}}}},"/api/v1/sensor/{id}":{"get":{"tags":["sensor-controller"],"operationId":"getSensorById","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Sensor"}}}}}}},"/api/v1/sensor/group/{id}":{"get":{"tags":["sensor-group-controller"],"operationId":"getSensorGroupById","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/SensorGroup"}}}}}}},"/api/v1/sensor/group/name/{name}":{"get":{"tags":["sensor-group-controller"],"operationId":"getSensorGroupByName","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/SensorGroup"}}}}}}},"/api/v1/sensor/group/all":{"get":{"tags":["sensor-group-controller"],"operationId":"getAllSensorGroups","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SensorGroup"}}}}}}}},"/api/v1/sensor/all":{"get":{"tags":["sensor-controller"],"operationId":"getAllSensors","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Sensor"}}}}}}}},"/api/v1/host/{id}":{"get":{"tags":["host-controller"],"operationId":"getById_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Host"}}}}}}},"/api/v1/host/name/{name}":{"get":{"tags":["host-controller"],"operationId":"getByName_1","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Host"}}}}}}},"/api/v1/host/all":{"get":{"tags":["host-controller"],"operationId":"getAll_1","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Host"}}}}}}}},"/api/v1/client/{id}":{"get":{"tags":["client-controller"],"operationId":"getClientById","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Client"}}}}}}},"/api/v1/client/name/{name}":{"get":{"tags":["client-controller"],"operationId":"getClientByName","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Client"}}}}}}},"/api/v1/client/all":{"get":{"tags":["client-controller"],"operationId":"getAllClients","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Client"}}}}}}}},"/api/v1/auth/users":{"get":{"tags":["user-controller"],"operationId":"getAllUsers","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/v1/station/delete/{id}":{"delete":{"tags":["station-controller"],"operationId":"delete","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}}}},"/api/v1/station/delete/all":{"delete":{"tags":["station-controller"],"operationId":"deleteAll","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}}}},"/api/v1/server/delete/all":{"delete":{"tags":["server-controller"],"summary":"Delete all readings from database","operationId":"deleteAllReadings","responses":{"200":{"description":"Successfully deleted all readings from database","content":{"*/*":{"schema":{"type":"string","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}},"403":{"description":"Accessing the resource you were trying to reach is forbidden","content":{"*/*":{"schema":{"type":"string","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}},"401":{"description":"You are not authorized to view the resource","content":{"*/*":{"schema":{"type":"string","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}},"404":{"description":"The resource you were trying to reach is not found","content":{"*/*":{"schema":{"type":"string","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}}}},"/api/v1/sensor/group/delete/{id}":{"delete":{"tags":["sensor-group-controller"],"operationId":"deleteSensorGroup","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/v1/sensor/group/delete/all":{"delete":{"tags":["sensor-group-controller"],"operationId":"deleteAllSensorGroups","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/v1/sensor/delete/{id}":{"delete":{"tags":["sensor-controller"],"operationId":"deleteSensor","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/v1/sensor/delete/all":{"delete":{"tags":["sensor-controller"],"operationId":"deleteAllSensors","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/v1/host/delete/{id}":{"delete":{"tags":["host-controller"],"operationId":"delete_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}}}},"/api/v1/host/delete/all":{"delete":{"tags":["host-controller"],"operationId":"deleteAll_1","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}}}},"/api/v1/client/delete/{id}":{"delete":{"tags":["client-controller"],"operationId":"deleteClient","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/v1/client/delete/all":{"delete":{"tags":["client-controller"],"operationId":"deleteAllClients","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/v1/auth/user/delete/{id}":{"delete":{"tags":["user-controller"],"operationId":"deleteUser","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}}},"components":{"schemas":{"Location":{"type":"object","properties":{"latitude":{"type":"number","format":"double"},"longitude":{"type":"number","format":"double"},"altitude":{"type":"number","format":"double"},"comment":{"type":"string"}}},"Station":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"location":{"$ref":"#/components/schemas/Location"},"createdDate":{"type":"string","format":"date-time"},"updatedDate":{"type":"string","format":"date-time"},"host":{"type":"string"},"clients":{"type":"array","items":{"type":"string"}},"diary":{"type":"string"}}},"Measurement":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string","enum":["PRECIPITATION","SOLAR_RADIATION","SOIL_MOISTURE","SOIL_TEMPERATURE","HUMIDITY","TEMPERATURE","CIRCUMFERENCE_INCREMENT","SHUNT_VOLTAGE","BUS_VOLTAGE","CURRENT_mA","POWER_mW","LOAD_VOLTAGE_V","INA219_OVERFLOW","BATTERY_VOLTAGE"]},"maxValue":{"type":"number","format":"double"},"minValue":{"type":"number","format":"double"},"unit":{"type":"string"},"comment":{"type":"string"},"precision":{"type":"integer","format":"int32"},"maxReadoutDifference":{"type":"number","format":"double"},"maxFrozenTimeInSeconds":{"type":"integer","format":"int32"},"maxRateOfChange":{"type":"number","format":"double"},"minVariationCoefficient":{"type":"number","format":"double"},"latitude":{"type":"number","format":"double"},"longitude":{"type":"number","format":"double"},"initialCircumference":{"type":"number","format":"double"},"treeType":{"type":"string","enum":["LARCH","SPRUCE"]}}},"Sensor":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"protocol":{"type":"string"},"protocolAddress":{"type":"string"},"hardwareName":{"type":"string"},"uniqueHardwareName":{"type":"string"},"description":{"type":"string"},"measurements":{"type":"array","items":{"$ref":"#/components/schemas/Measurement"}}}},"SensorGroup":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"sensors":{"type":"array","items":{"type":"string"}},"station":{"type":"string"},"measurementType":{"type":"string","enum":["PRECIPITATION","SOLAR_RADIATION","SOIL_MOISTURE","SOIL_TEMPERATURE","HUMIDITY","TEMPERATURE","CIRCUMFERENCE_INCREMENT","SHUNT_VOLTAGE","BUS_VOLTAGE","CURRENT_mA","POWER_mW","LOAD_VOLTAGE_V","INA219_OVERFLOW","BATTERY_VOLTAGE"]}}},"Host":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"simId":{"type":"string"},"mac":{"type":"string"}}},"Client":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"mac":{"type":"string"},"description":{"type":"string"},"connectionType":{"type":"string"},"sensors":{"type":"array","items":{"type":"string"}}}},"UserSignUpRequest":{"required":["email","password","username"],"type":"object","properties":{"username":{"maxLength":20,"minLength":3,"type":"string"},"email":{"maxLength":50,"minLength":0,"type":"string"},"password":{"maxLength":40,"minLength":6,"type":"string"},"roles":{"uniqueItems":true,"type":"array","items":{"type":"string"}}}},"ReadingPayload":{"type":"object","properties":{"host":{"type":"string"},"client":{"type":"string"},"sensorProtocol":{"type":"string"},"protocolAddress":{"type":"string"},"hardwareName":{"type":"string"},"readings":{"type":"array","items":{"$ref":"#/components/schemas/ReadingValue"}},"timestamp":{"type":"integer","format":"int64"},"sensorError":{"type":"string","enum":["NO_ERROR","INVALID_TIMESTAMP","INVALID_SENSOR_ID","INVALID_SENSOR_TYPE","INVALID_READING_VALUE_RANGE","INVALID_READING_VALUE_TOO_LOW","INVALID_READING_VALUE_TOO_HIGH","INVALID_READING_VALUE_NAN","INVALID_READING_VALUE_DUPLICATE","INVALID_READING_VALUE_BELOW_VAR_COFF","INVALID_READING_VALUE_ABOVE_RATE_OF_CHANGE","INVALID_READING_VALUE_LOWER_FOR_SOLAR_ELEVATION","INVALID_READING_VALUE_NOT_ZERO_FOR_SOLAR_ELEVATION","INVALID_READING_VALUE_FROZEN","INVALID_READING_VALUE_SPIKE","DATA_OK","SENSOR_NOT_FOUND","SENSOR_NOT_CONNECTED","NO_DATA","SENSOR_DOES_NOT_RETURN_DATA","BATTERY_VOLTAGE_TOO_LOW","INVALID_VALUE","SENSOR_INIT_FAILED","INA219_OVERFLOW","CONNECTION_ENDED_PREMATURELY","WRONG_CRC","UNKNOWN_ERROR_TYPE"]}}},"ReadingValue":{"type":"object","properties":{"name":{"type":"string","enum":["PRECIPITATION","SOLAR_RADIATION","SOIL_MOISTURE","SOIL_TEMPERATURE","HUMIDITY","TEMPERATURE","CIRCUMFERENCE_INCREMENT","SHUNT_VOLTAGE","BUS_VOLTAGE","CURRENT_mA","POWER_mW","LOAD_VOLTAGE_V","INA219_OVERFLOW","BATTERY_VOLTAGE"]},"value":{"type":"number","format":"double"}}},"UserLoginRequest":{"required":["password","username"],"type":"object","properties":{"username":{"maxLength":20,"minLength":3,"type":"string"},"password":{"maxLength":40,"minLength":6,"type":"string"}}},"Role":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","enum":["ROLE_USER","ROLE_MANAGER","ROLE_ADMIN"]}}},"Document":{"type":"object","properties":{"empty":{"type":"boolean"}},"additionalProperties":{"type":"object"}},"AvgMinMax":{"type":"object","properties":{"name":{"type":"string"},"min":{"$ref":"#/components/schemas/ValueWithTimestamp"},"max":{"$ref":"#/components/schemas/ValueWithTimestamp"},"avg":{"type":"number","format":"double"},"measurementType":{"type":"string","enum":["PRECIPITATION","SOLAR_RADIATION","SOIL_MOISTURE","SOIL_TEMPERATURE","HUMIDITY","TEMPERATURE","CIRCUMFERENCE_INCREMENT","SHUNT_VOLTAGE","BUS_VOLTAGE","CURRENT_mA","POWER_mW","LOAD_VOLTAGE_V","INA219_OVERFLOW","BATTERY_VOLTAGE"]},"isSensorGroup":{"type":"boolean"}}},"DendrometerDailyValue":{"type":"object","properties":{"name":{"type":"string"},"mds":{"$ref":"#/components/schemas/DendrometerMDS"},"deltaR":{"$ref":"#/components/schemas/DendrometerDeltaR"},"std":{"type":"number","format":"double"},"isSensorGroup":{"type":"boolean"}}},"DendrometerDeltaR":{"type":"object","properties":{"value":{"type":"number","format":"double"},"duration":{"type":"number","format":"double"}}},"DendrometerMDS":{"type":"object","properties":{"value":{"type":"number","format":"double"},"duration":{"type":"number","format":"double"}}},"LevelOneResponse":{"type":"object","properties":{"sumOrAvg":{"type":"array","items":{"$ref":"#/components/schemas/SumOrAvg"}},"avgMinMax":{"type":"array","items":{"$ref":"#/components/schemas/AvgMinMax"}},"dendrometerDailyValues":{"type":"array","items":{"$ref":"#/components/schemas/DendrometerDailyValue"}}}},"SumOrAvg":{"type":"object","properties":{"type":{"type":"string","enum":["SUM","AVG"]},"name":{"type":"string"},"value":{"type":"number","format":"double"},"measurementType":{"type":"string","enum":["PRECIPITATION","SOLAR_RADIATION","SOIL_MOISTURE","SOIL_TEMPERATURE","HUMIDITY","TEMPERATURE","CIRCUMFERENCE_INCREMENT","SHUNT_VOLTAGE","BUS_VOLTAGE","CURRENT_mA","POWER_mW","LOAD_VOLTAGE_V","INA219_OVERFLOW","BATTERY_VOLTAGE"]},"isSensorGroup":{"type":"boolean"}}},"ValueWithTimestamp":{"type":"object","properties":{"value":{"type":"number","format":"double"},"timestamp":{"type":"string","format":"date-time"}}}}}} diff --git a/projects/generated-api/src/.gitignore b/projects/generated-api/src/.gitignore new file mode 100644 index 0000000..149b576 --- /dev/null +++ b/projects/generated-api/src/.gitignore @@ -0,0 +1,4 @@ +wwwroot/*.js +node_modules +typings +dist diff --git a/projects/generated-api/src/.npmignore b/projects/generated-api/src/.npmignore new file mode 100644 index 0000000..7e981c4 --- /dev/null +++ b/projects/generated-api/src/.npmignore @@ -0,0 +1,5 @@ +wwwroot/*.js +node +node_modules +typings +dist diff --git a/projects/generated-api/src/.swagger-codegen-ignore b/projects/generated-api/src/.swagger-codegen-ignore new file mode 100644 index 0000000..c5fa491 --- /dev/null +++ b/projects/generated-api/src/.swagger-codegen-ignore @@ -0,0 +1,23 @@ +# Swagger Codegen Ignore +# Generated by swagger-codegen https://github.com/swagger-api/swagger-codegen + +# Use this file to prevent files from being overwritten by the generator. +# The patterns follow closely to .gitignore or .dockerignore. + +# As an example, the C# client generator defines ApiClient.cs. +# You can make changes and tell Swagger Codgen to ignore just this file by uncommenting the following line: +#ApiClient.cs + +# You can match any string of characters against a directory, file or extension with a single asterisk (*): +#foo/*/qux +# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux + +# You can recursively match patterns against a directory, file or extension with a double asterisk (**): +#foo/**/qux +# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux + +# You can also negate patterns with an exclamation (!). +# For example, you can ignore all files in a docs folder with the file extension .md: +#docs/*.md +# Then explicitly reverse the ignore rule for a single file: +#!docs/README.md diff --git a/projects/generated-api/src/.swagger-codegen/VERSION b/projects/generated-api/src/.swagger-codegen/VERSION new file mode 100644 index 0000000..3a460e6 --- /dev/null +++ b/projects/generated-api/src/.swagger-codegen/VERSION @@ -0,0 +1 @@ +3.0.40 \ No newline at end of file diff --git a/projects/generated-api/src/api.module.ts b/projects/generated-api/src/api.module.ts new file mode 100644 index 0000000..0e58c02 --- /dev/null +++ b/projects/generated-api/src/api.module.ts @@ -0,0 +1,45 @@ +import { NgModule, ModuleWithProviders, SkipSelf, Optional } from '@angular/core'; +import { Configuration } from './configuration'; +import { HttpClient } from '@angular/common/http'; + + +import { ClientControllerService } from './api/clientController.service'; +import { HostControllerService } from './api/hostController.service'; +import { SensorControllerService } from './api/sensorController.service'; +import { SensorGroupControllerService } from './api/sensorGroupController.service'; +import { ServerControllerService } from './api/serverController.service'; +import { StationControllerService } from './api/stationController.service'; +import { UserControllerService } from './api/userController.service'; + +@NgModule({ + imports: [], + declarations: [], + exports: [], + providers: [ + ClientControllerService, + HostControllerService, + SensorControllerService, + SensorGroupControllerService, + ServerControllerService, + StationControllerService, + UserControllerService ] +}) +export class ApiModule { + public static forRoot(configurationFactory: () => Configuration): ModuleWithProviders<ApiModule> { + return { + ngModule: ApiModule, + providers: [ { provide: Configuration, useFactory: configurationFactory } ] + }; + } + + constructor( @Optional() @SkipSelf() parentModule: ApiModule, + @Optional() http: HttpClient) { + if (parentModule) { + throw new Error('ApiModule is already loaded. Import in your base AppModule only.'); + } + if (!http) { + throw new Error('You need to import the HttpClientModule in your AppModule! \n' + + 'See also https://github.com/angular/angular/issues/20575'); + } + } +} diff --git a/projects/generated-api/src/api/api.ts b/projects/generated-api/src/api/api.ts new file mode 100644 index 0000000..81af0e2 --- /dev/null +++ b/projects/generated-api/src/api/api.ts @@ -0,0 +1,15 @@ +export * from './clientController.service'; +import { ClientControllerService } from './clientController.service'; +export * from './hostController.service'; +import { HostControllerService } from './hostController.service'; +export * from './sensorController.service'; +import { SensorControllerService } from './sensorController.service'; +export * from './sensorGroupController.service'; +import { SensorGroupControllerService } from './sensorGroupController.service'; +export * from './serverController.service'; +import { ServerControllerService } from './serverController.service'; +export * from './stationController.service'; +import { StationControllerService } from './stationController.service'; +export * from './userController.service'; +import { UserControllerService } from './userController.service'; +export const APIS = [ClientControllerService, HostControllerService, SensorControllerService, SensorGroupControllerService, ServerControllerService, StationControllerService, UserControllerService]; diff --git a/projects/generated-api/src/api/clientController.service.ts b/projects/generated-api/src/api/clientController.service.ts new file mode 100644 index 0000000..2cb64be --- /dev/null +++ b/projects/generated-api/src/api/clientController.service.ts @@ -0,0 +1,352 @@ +/** + * OpenAPI definition + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * OpenAPI spec version: v0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + *//* tslint:disable:no-unused-variable member-ordering */ + +import { Inject, Injectable, Optional } from '@angular/core'; +import { HttpClient, HttpHeaders, HttpParams, + HttpResponse, HttpEvent } from '@angular/common/http'; +import { CustomHttpUrlEncodingCodec } from '../encoder'; + +import { Observable } from 'rxjs'; + +import { Client } from '../model/client'; + +import { BASE_PATH, COLLECTION_FORMATS } from '../variables'; +import { Configuration } from '../configuration'; + + +@Injectable() +export class ClientControllerService { + + protected basePath = 'http://localhost:8080'; + public defaultHeaders = new HttpHeaders(); + public configuration = new Configuration(); + + constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) { + if (basePath) { + this.basePath = basePath; + } + if (configuration) { + this.configuration = configuration; + this.basePath = basePath || configuration.basePath || this.basePath; + } + } + + /** + * @param consumes string[] mime-types + * @return true: consumes contains 'multipart/form-data', false: otherwise + */ + private canConsumeForm(consumes: string[]): boolean { + const form = 'multipart/form-data'; + for (const consume of consumes) { + if (form === consume) { + return true; + } + } + return false; + } + + + /** + * + * + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public deleteAllClients(observe?: 'body', reportProgress?: boolean): Observable<any>; + public deleteAllClients(observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>; + public deleteAllClients(observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>; + public deleteAllClients(observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + + return this.httpClient.request<any>('delete',`${this.basePath}/api/v1/client/delete/all`, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * + * @param id + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public deleteClient(id: string, observe?: 'body', reportProgress?: boolean): Observable<any>; + public deleteClient(id: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>; + public deleteClient(id: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>; + public deleteClient(id: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + if (id === null || id === undefined) { + throw new Error('Required parameter id was null or undefined when calling deleteClient.'); + } + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + + return this.httpClient.request<any>('delete',`${this.basePath}/api/v1/client/delete/${encodeURIComponent(String(id))}`, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public getAllClients(observe?: 'body', reportProgress?: boolean): Observable<Array<Client>>; + public getAllClients(observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Array<Client>>>; + public getAllClients(observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Array<Client>>>; + public getAllClients(observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + + return this.httpClient.request<Array<Client>>('get',`${this.basePath}/api/v1/client/all`, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * + * @param id + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public getClientById(id: string, observe?: 'body', reportProgress?: boolean): Observable<Client>; + public getClientById(id: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Client>>; + public getClientById(id: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Client>>; + public getClientById(id: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + if (id === null || id === undefined) { + throw new Error('Required parameter id was null or undefined when calling getClientById.'); + } + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + + return this.httpClient.request<Client>('get',`${this.basePath}/api/v1/client/${encodeURIComponent(String(id))}`, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * + * @param name + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public getClientByName(name: string, observe?: 'body', reportProgress?: boolean): Observable<Client>; + public getClientByName(name: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Client>>; + public getClientByName(name: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Client>>; + public getClientByName(name: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + if (name === null || name === undefined) { + throw new Error('Required parameter name was null or undefined when calling getClientByName.'); + } + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + + return this.httpClient.request<Client>('get',`${this.basePath}/api/v1/client/name/${encodeURIComponent(String(name))}`, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * + * @param body + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public saveClient(body: Client, observe?: 'body', reportProgress?: boolean): Observable<Client>; + public saveClient(body: Client, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Client>>; + public saveClient(body: Client, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Client>>; + public saveClient(body: Client, observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + if (body === null || body === undefined) { + throw new Error('Required parameter body was null or undefined when calling saveClient.'); + } + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + 'application/json' + ]; + const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes); + if (httpContentTypeSelected != undefined) { + headers = headers.set('Content-Type', httpContentTypeSelected); + } + + return this.httpClient.request<Client>('post',`${this.basePath}/api/v1/client/add`, + { + body: body, + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * + * @param body + * @param id + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public updateClient(body: Client, id: string, observe?: 'body', reportProgress?: boolean): Observable<Client>; + public updateClient(body: Client, id: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Client>>; + public updateClient(body: Client, id: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Client>>; + public updateClient(body: Client, id: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + if (body === null || body === undefined) { + throw new Error('Required parameter body was null or undefined when calling updateClient.'); + } + + if (id === null || id === undefined) { + throw new Error('Required parameter id was null or undefined when calling updateClient.'); + } + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + 'application/json' + ]; + const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes); + if (httpContentTypeSelected != undefined) { + headers = headers.set('Content-Type', httpContentTypeSelected); + } + + return this.httpClient.request<Client>('put',`${this.basePath}/api/v1/client/update/${encodeURIComponent(String(id))}`, + { + body: body, + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + +} diff --git a/projects/generated-api/src/api/hostController.service.ts b/projects/generated-api/src/api/hostController.service.ts new file mode 100644 index 0000000..9cc3886 --- /dev/null +++ b/projects/generated-api/src/api/hostController.service.ts @@ -0,0 +1,352 @@ +/** + * OpenAPI definition + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * OpenAPI spec version: v0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + *//* tslint:disable:no-unused-variable member-ordering */ + +import { Inject, Injectable, Optional } from '@angular/core'; +import { HttpClient, HttpHeaders, HttpParams, + HttpResponse, HttpEvent } from '@angular/common/http'; +import { CustomHttpUrlEncodingCodec } from '../encoder'; + +import { Observable } from 'rxjs'; + +import { Host } from '../model/host'; + +import { BASE_PATH, COLLECTION_FORMATS } from '../variables'; +import { Configuration } from '../configuration'; + + +@Injectable() +export class HostControllerService { + + protected basePath = 'http://localhost:8080'; + public defaultHeaders = new HttpHeaders(); + public configuration = new Configuration(); + + constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) { + if (basePath) { + this.basePath = basePath; + } + if (configuration) { + this.configuration = configuration; + this.basePath = basePath || configuration.basePath || this.basePath; + } + } + + /** + * @param consumes string[] mime-types + * @return true: consumes contains 'multipart/form-data', false: otherwise + */ + private canConsumeForm(consumes: string[]): boolean { + const form = 'multipart/form-data'; + for (const consume of consumes) { + if (form === consume) { + return true; + } + } + return false; + } + + + /** + * + * + * @param id + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public delete1(id: string, observe?: 'body', reportProgress?: boolean): Observable<string>; + public delete1(id: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<string>>; + public delete1(id: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<string>>; + public delete1(id: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + if (id === null || id === undefined) { + throw new Error('Required parameter id was null or undefined when calling delete1.'); + } + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + + return this.httpClient.request<string>('delete',`${this.basePath}/api/v1/host/delete/${encodeURIComponent(String(id))}`, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public deleteAll1(observe?: 'body', reportProgress?: boolean): Observable<string>; + public deleteAll1(observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<string>>; + public deleteAll1(observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<string>>; + public deleteAll1(observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + + return this.httpClient.request<string>('delete',`${this.basePath}/api/v1/host/delete/all`, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public getAll1(observe?: 'body', reportProgress?: boolean): Observable<Array<Host>>; + public getAll1(observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Array<Host>>>; + public getAll1(observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Array<Host>>>; + public getAll1(observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + + return this.httpClient.request<Array<Host>>('get',`${this.basePath}/api/v1/host/all`, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * + * @param id + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public getById1(id: string, observe?: 'body', reportProgress?: boolean): Observable<Host>; + public getById1(id: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Host>>; + public getById1(id: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Host>>; + public getById1(id: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + if (id === null || id === undefined) { + throw new Error('Required parameter id was null or undefined when calling getById1.'); + } + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + + return this.httpClient.request<Host>('get',`${this.basePath}/api/v1/host/${encodeURIComponent(String(id))}`, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * + * @param name + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public getByName1(name: string, observe?: 'body', reportProgress?: boolean): Observable<Host>; + public getByName1(name: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Host>>; + public getByName1(name: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Host>>; + public getByName1(name: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + if (name === null || name === undefined) { + throw new Error('Required parameter name was null or undefined when calling getByName1.'); + } + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + + return this.httpClient.request<Host>('get',`${this.basePath}/api/v1/host/name/${encodeURIComponent(String(name))}`, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * + * @param body + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public save1(body: Host, observe?: 'body', reportProgress?: boolean): Observable<Host>; + public save1(body: Host, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Host>>; + public save1(body: Host, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Host>>; + public save1(body: Host, observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + if (body === null || body === undefined) { + throw new Error('Required parameter body was null or undefined when calling save1.'); + } + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + 'application/json' + ]; + const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes); + if (httpContentTypeSelected != undefined) { + headers = headers.set('Content-Type', httpContentTypeSelected); + } + + return this.httpClient.request<Host>('post',`${this.basePath}/api/v1/host/add`, + { + body: body, + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * + * @param body + * @param id + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public update1(body: Host, id: string, observe?: 'body', reportProgress?: boolean): Observable<Host>; + public update1(body: Host, id: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Host>>; + public update1(body: Host, id: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Host>>; + public update1(body: Host, id: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + if (body === null || body === undefined) { + throw new Error('Required parameter body was null or undefined when calling update1.'); + } + + if (id === null || id === undefined) { + throw new Error('Required parameter id was null or undefined when calling update1.'); + } + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + 'application/json' + ]; + const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes); + if (httpContentTypeSelected != undefined) { + headers = headers.set('Content-Type', httpContentTypeSelected); + } + + return this.httpClient.request<Host>('put',`${this.basePath}/api/v1/host/update/${encodeURIComponent(String(id))}`, + { + body: body, + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + +} diff --git a/projects/generated-api/src/api/sensorController.service.ts b/projects/generated-api/src/api/sensorController.service.ts new file mode 100644 index 0000000..12c0eb7 --- /dev/null +++ b/projects/generated-api/src/api/sensorController.service.ts @@ -0,0 +1,311 @@ +/** + * OpenAPI definition + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * OpenAPI spec version: v0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + *//* tslint:disable:no-unused-variable member-ordering */ + +import { Inject, Injectable, Optional } from '@angular/core'; +import { HttpClient, HttpHeaders, HttpParams, + HttpResponse, HttpEvent } from '@angular/common/http'; +import { CustomHttpUrlEncodingCodec } from '../encoder'; + +import { Observable } from 'rxjs'; + +import { Sensor } from '../model/sensor'; + +import { BASE_PATH, COLLECTION_FORMATS } from '../variables'; +import { Configuration } from '../configuration'; + + +@Injectable() +export class SensorControllerService { + + protected basePath = 'http://localhost:8080'; + public defaultHeaders = new HttpHeaders(); + public configuration = new Configuration(); + + constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) { + if (basePath) { + this.basePath = basePath; + } + if (configuration) { + this.configuration = configuration; + this.basePath = basePath || configuration.basePath || this.basePath; + } + } + + /** + * @param consumes string[] mime-types + * @return true: consumes contains 'multipart/form-data', false: otherwise + */ + private canConsumeForm(consumes: string[]): boolean { + const form = 'multipart/form-data'; + for (const consume of consumes) { + if (form === consume) { + return true; + } + } + return false; + } + + + /** + * + * + * @param body + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public addSensor(body: Sensor, observe?: 'body', reportProgress?: boolean): Observable<any>; + public addSensor(body: Sensor, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>; + public addSensor(body: Sensor, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>; + public addSensor(body: Sensor, observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + if (body === null || body === undefined) { + throw new Error('Required parameter body was null or undefined when calling addSensor.'); + } + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + 'application/json' + ]; + const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes); + if (httpContentTypeSelected != undefined) { + headers = headers.set('Content-Type', httpContentTypeSelected); + } + + return this.httpClient.request<any>('post',`${this.basePath}/api/v1/sensor/add`, + { + body: body, + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public deleteAllSensors(observe?: 'body', reportProgress?: boolean): Observable<any>; + public deleteAllSensors(observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>; + public deleteAllSensors(observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>; + public deleteAllSensors(observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + + return this.httpClient.request<any>('delete',`${this.basePath}/api/v1/sensor/delete/all`, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * + * @param id + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public deleteSensor(id: string, observe?: 'body', reportProgress?: boolean): Observable<any>; + public deleteSensor(id: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>; + public deleteSensor(id: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>; + public deleteSensor(id: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + if (id === null || id === undefined) { + throw new Error('Required parameter id was null or undefined when calling deleteSensor.'); + } + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + + return this.httpClient.request<any>('delete',`${this.basePath}/api/v1/sensor/delete/${encodeURIComponent(String(id))}`, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public getAllSensors(observe?: 'body', reportProgress?: boolean): Observable<Array<Sensor>>; + public getAllSensors(observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Array<Sensor>>>; + public getAllSensors(observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Array<Sensor>>>; + public getAllSensors(observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + + return this.httpClient.request<Array<Sensor>>('get',`${this.basePath}/api/v1/sensor/all`, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * + * @param id + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public getSensorById(id: string, observe?: 'body', reportProgress?: boolean): Observable<Sensor>; + public getSensorById(id: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Sensor>>; + public getSensorById(id: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Sensor>>; + public getSensorById(id: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + if (id === null || id === undefined) { + throw new Error('Required parameter id was null or undefined when calling getSensorById.'); + } + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + + return this.httpClient.request<Sensor>('get',`${this.basePath}/api/v1/sensor/${encodeURIComponent(String(id))}`, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * + * @param body + * @param id + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public updateSensor(body: Sensor, id: string, observe?: 'body', reportProgress?: boolean): Observable<any>; + public updateSensor(body: Sensor, id: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>; + public updateSensor(body: Sensor, id: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>; + public updateSensor(body: Sensor, id: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + if (body === null || body === undefined) { + throw new Error('Required parameter body was null or undefined when calling updateSensor.'); + } + + if (id === null || id === undefined) { + throw new Error('Required parameter id was null or undefined when calling updateSensor.'); + } + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + 'application/json' + ]; + const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes); + if (httpContentTypeSelected != undefined) { + headers = headers.set('Content-Type', httpContentTypeSelected); + } + + return this.httpClient.request<any>('put',`${this.basePath}/api/v1/sensor/update/${encodeURIComponent(String(id))}`, + { + body: body, + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + +} diff --git a/projects/generated-api/src/api/sensorGroupController.service.ts b/projects/generated-api/src/api/sensorGroupController.service.ts new file mode 100644 index 0000000..0332c12 --- /dev/null +++ b/projects/generated-api/src/api/sensorGroupController.service.ts @@ -0,0 +1,352 @@ +/** + * OpenAPI definition + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * OpenAPI spec version: v0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + *//* tslint:disable:no-unused-variable member-ordering */ + +import { Inject, Injectable, Optional } from '@angular/core'; +import { HttpClient, HttpHeaders, HttpParams, + HttpResponse, HttpEvent } from '@angular/common/http'; +import { CustomHttpUrlEncodingCodec } from '../encoder'; + +import { Observable } from 'rxjs'; + +import { SensorGroup } from '../model/sensorGroup'; + +import { BASE_PATH, COLLECTION_FORMATS } from '../variables'; +import { Configuration } from '../configuration'; + + +@Injectable() +export class SensorGroupControllerService { + + protected basePath = 'http://localhost:8080'; + public defaultHeaders = new HttpHeaders(); + public configuration = new Configuration(); + + constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) { + if (basePath) { + this.basePath = basePath; + } + if (configuration) { + this.configuration = configuration; + this.basePath = basePath || configuration.basePath || this.basePath; + } + } + + /** + * @param consumes string[] mime-types + * @return true: consumes contains 'multipart/form-data', false: otherwise + */ + private canConsumeForm(consumes: string[]): boolean { + const form = 'multipart/form-data'; + for (const consume of consumes) { + if (form === consume) { + return true; + } + } + return false; + } + + + /** + * + * + * @param body + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public addSensorGroup(body: SensorGroup, observe?: 'body', reportProgress?: boolean): Observable<any>; + public addSensorGroup(body: SensorGroup, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>; + public addSensorGroup(body: SensorGroup, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>; + public addSensorGroup(body: SensorGroup, observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + if (body === null || body === undefined) { + throw new Error('Required parameter body was null or undefined when calling addSensorGroup.'); + } + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + 'application/json' + ]; + const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes); + if (httpContentTypeSelected != undefined) { + headers = headers.set('Content-Type', httpContentTypeSelected); + } + + return this.httpClient.request<any>('post',`${this.basePath}/api/v1/sensor/group/add`, + { + body: body, + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public deleteAllSensorGroups(observe?: 'body', reportProgress?: boolean): Observable<any>; + public deleteAllSensorGroups(observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>; + public deleteAllSensorGroups(observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>; + public deleteAllSensorGroups(observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + + return this.httpClient.request<any>('delete',`${this.basePath}/api/v1/sensor/group/delete/all`, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * + * @param id + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public deleteSensorGroup(id: string, observe?: 'body', reportProgress?: boolean): Observable<any>; + public deleteSensorGroup(id: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>; + public deleteSensorGroup(id: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>; + public deleteSensorGroup(id: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + if (id === null || id === undefined) { + throw new Error('Required parameter id was null or undefined when calling deleteSensorGroup.'); + } + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + + return this.httpClient.request<any>('delete',`${this.basePath}/api/v1/sensor/group/delete/${encodeURIComponent(String(id))}`, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public getAllSensorGroups(observe?: 'body', reportProgress?: boolean): Observable<Array<SensorGroup>>; + public getAllSensorGroups(observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Array<SensorGroup>>>; + public getAllSensorGroups(observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Array<SensorGroup>>>; + public getAllSensorGroups(observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + + return this.httpClient.request<Array<SensorGroup>>('get',`${this.basePath}/api/v1/sensor/group/all`, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * + * @param id + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public getSensorGroupById(id: string, observe?: 'body', reportProgress?: boolean): Observable<SensorGroup>; + public getSensorGroupById(id: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<SensorGroup>>; + public getSensorGroupById(id: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<SensorGroup>>; + public getSensorGroupById(id: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + if (id === null || id === undefined) { + throw new Error('Required parameter id was null or undefined when calling getSensorGroupById.'); + } + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + + return this.httpClient.request<SensorGroup>('get',`${this.basePath}/api/v1/sensor/group/${encodeURIComponent(String(id))}`, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * + * @param name + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public getSensorGroupByName(name: string, observe?: 'body', reportProgress?: boolean): Observable<SensorGroup>; + public getSensorGroupByName(name: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<SensorGroup>>; + public getSensorGroupByName(name: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<SensorGroup>>; + public getSensorGroupByName(name: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + if (name === null || name === undefined) { + throw new Error('Required parameter name was null or undefined when calling getSensorGroupByName.'); + } + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + + return this.httpClient.request<SensorGroup>('get',`${this.basePath}/api/v1/sensor/group/name/${encodeURIComponent(String(name))}`, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * + * @param body + * @param id + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public updateSensorGroup(body: SensorGroup, id: string, observe?: 'body', reportProgress?: boolean): Observable<any>; + public updateSensorGroup(body: SensorGroup, id: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>; + public updateSensorGroup(body: SensorGroup, id: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>; + public updateSensorGroup(body: SensorGroup, id: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + if (body === null || body === undefined) { + throw new Error('Required parameter body was null or undefined when calling updateSensorGroup.'); + } + + if (id === null || id === undefined) { + throw new Error('Required parameter id was null or undefined when calling updateSensorGroup.'); + } + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + 'application/json' + ]; + const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes); + if (httpContentTypeSelected != undefined) { + headers = headers.set('Content-Type', httpContentTypeSelected); + } + + return this.httpClient.request<any>('put',`${this.basePath}/api/v1/sensor/group/update/${encodeURIComponent(String(id))}`, + { + body: body, + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + +} diff --git a/projects/generated-api/src/api/serverController.service.ts b/projects/generated-api/src/api/serverController.service.ts new file mode 100644 index 0000000..f89f6f9 --- /dev/null +++ b/projects/generated-api/src/api/serverController.service.ts @@ -0,0 +1,329 @@ +/** + * OpenAPI definition + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * OpenAPI spec version: v0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + *//* tslint:disable:no-unused-variable member-ordering */ + +import { Inject, Injectable, Optional } from '@angular/core'; +import { HttpClient, HttpHeaders, HttpParams, + HttpResponse, HttpEvent } from '@angular/common/http'; +import { CustomHttpUrlEncodingCodec } from '../encoder'; + +import { Observable } from 'rxjs'; + +import { Document } from '../model/document'; +import { LevelOneResponse } from '../model/levelOneResponse'; +import { ReadingPayload } from '../model/readingPayload'; + +import { BASE_PATH, COLLECTION_FORMATS } from '../variables'; +import { Configuration } from '../configuration'; + + +@Injectable() +export class ServerControllerService { + + protected basePath = 'http://localhost:8080'; + public defaultHeaders = new HttpHeaders(); + public configuration = new Configuration(); + + constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) { + if (basePath) { + this.basePath = basePath; + } + if (configuration) { + this.configuration = configuration; + this.basePath = basePath || configuration.basePath || this.basePath; + } + } + + /** + * @param consumes string[] mime-types + * @return true: consumes contains 'multipart/form-data', false: otherwise + */ + private canConsumeForm(consumes: string[]): boolean { + const form = 'multipart/form-data'; + for (const consume of consumes) { + if (form === consume) { + return true; + } + } + return false; + } + + + /** + * Add a reading to the database + * + * @param body + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public addReading(body: ReadingPayload, observe?: 'body', reportProgress?: boolean): Observable<string>; + public addReading(body: ReadingPayload, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<string>>; + public addReading(body: ReadingPayload, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<string>>; + public addReading(body: ReadingPayload, observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + if (body === null || body === undefined) { + throw new Error('Required parameter body was null or undefined when calling addReading.'); + } + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + 'application/json' + ]; + const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes); + if (httpContentTypeSelected != undefined) { + headers = headers.set('Content-Type', httpContentTypeSelected); + } + + return this.httpClient.request<string>('post',`${this.basePath}/api/v1/server/add`, + { + body: body, + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * Delete all readings from database + * + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public deleteAllReadings(observe?: 'body', reportProgress?: boolean): Observable<string>; + public deleteAllReadings(observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<string>>; + public deleteAllReadings(observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<string>>; + public deleteAllReadings(observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + + return this.httpClient.request<string>('delete',`${this.basePath}/api/v1/server/delete/all`, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * Get level one response for a group id and a time range + * + * @param station + * @param date + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public getLevelOneResponseForGroupAndTimeRange(station: string, date: Date, observe?: 'body', reportProgress?: boolean): Observable<LevelOneResponse>; + public getLevelOneResponseForGroupAndTimeRange(station: string, date: Date, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<LevelOneResponse>>; + public getLevelOneResponseForGroupAndTimeRange(station: string, date: Date, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<LevelOneResponse>>; + public getLevelOneResponseForGroupAndTimeRange(station: string, date: Date, observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + if (station === null || station === undefined) { + throw new Error('Required parameter station was null or undefined when calling getLevelOneResponseForGroupAndTimeRange.'); + } + + if (date === null || date === undefined) { + throw new Error('Required parameter date was null or undefined when calling getLevelOneResponseForGroupAndTimeRange.'); + } + + let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()}); + if (date !== undefined && date !== null) { + queryParameters = queryParameters.set('date', <any>date.toISOString()); + } + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + + return this.httpClient.request<LevelOneResponse>('get',`${this.basePath}/api/v1/server/get/lvl1/${encodeURIComponent(String(station))}`, + { + params: queryParameters, + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * Get readings by sensor name and error type and time range + * + * @param sensorId + * @param errorType + * @param from + * @param to + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public getReadingsBySensorIdAndErrorTypeAndTimeRange(sensorId: string, errorType: string, from: Date, to: Date, observe?: 'body', reportProgress?: boolean): Observable<Array<Document>>; + public getReadingsBySensorIdAndErrorTypeAndTimeRange(sensorId: string, errorType: string, from: Date, to: Date, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Array<Document>>>; + public getReadingsBySensorIdAndErrorTypeAndTimeRange(sensorId: string, errorType: string, from: Date, to: Date, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Array<Document>>>; + public getReadingsBySensorIdAndErrorTypeAndTimeRange(sensorId: string, errorType: string, from: Date, to: Date, observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + if (sensorId === null || sensorId === undefined) { + throw new Error('Required parameter sensorId was null or undefined when calling getReadingsBySensorIdAndErrorTypeAndTimeRange.'); + } + + if (errorType === null || errorType === undefined) { + throw new Error('Required parameter errorType was null or undefined when calling getReadingsBySensorIdAndErrorTypeAndTimeRange.'); + } + + if (from === null || from === undefined) { + throw new Error('Required parameter from was null or undefined when calling getReadingsBySensorIdAndErrorTypeAndTimeRange.'); + } + + if (to === null || to === undefined) { + throw new Error('Required parameter to was null or undefined when calling getReadingsBySensorIdAndErrorTypeAndTimeRange.'); + } + + let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()}); + if (sensorId !== undefined && sensorId !== null) { + queryParameters = queryParameters.set('sensorId', <any>sensorId); + } + if (errorType !== undefined && errorType !== null) { + queryParameters = queryParameters.set('errorType', <any>errorType); + } + if (from !== undefined && from !== null) { + queryParameters = queryParameters.set('from', <any>from.toISOString()); + } + if (to !== undefined && to !== null) { + queryParameters = queryParameters.set('to', <any>to.toISOString()); + } + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + + return this.httpClient.request<Array<Document>>('get',`${this.basePath}/api/v1/server/get/sensor/error/range`, + { + params: queryParameters, + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * Get readings by sensor name and time range + * + * @param sensorId + * @param from + * @param to + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public getReadingsBySensorIdAndTimeRange(sensorId: string, from: Date, to: Date, observe?: 'body', reportProgress?: boolean): Observable<Array<Document>>; + public getReadingsBySensorIdAndTimeRange(sensorId: string, from: Date, to: Date, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Array<Document>>>; + public getReadingsBySensorIdAndTimeRange(sensorId: string, from: Date, to: Date, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Array<Document>>>; + public getReadingsBySensorIdAndTimeRange(sensorId: string, from: Date, to: Date, observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + if (sensorId === null || sensorId === undefined) { + throw new Error('Required parameter sensorId was null or undefined when calling getReadingsBySensorIdAndTimeRange.'); + } + + if (from === null || from === undefined) { + throw new Error('Required parameter from was null or undefined when calling getReadingsBySensorIdAndTimeRange.'); + } + + if (to === null || to === undefined) { + throw new Error('Required parameter to was null or undefined when calling getReadingsBySensorIdAndTimeRange.'); + } + + let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()}); + if (sensorId !== undefined && sensorId !== null) { + queryParameters = queryParameters.set('sensorId', <any>sensorId); + } + if (from !== undefined && from !== null) { + queryParameters = queryParameters.set('from', <any>from.toISOString()); + } + if (to !== undefined && to !== null) { + queryParameters = queryParameters.set('to', <any>to.toISOString()); + } + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + + return this.httpClient.request<Array<Document>>('get',`${this.basePath}/api/v1/server/get/sensor/range`, + { + params: queryParameters, + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + +} diff --git a/projects/generated-api/src/api/stationController.service.ts b/projects/generated-api/src/api/stationController.service.ts new file mode 100644 index 0000000..6377251 --- /dev/null +++ b/projects/generated-api/src/api/stationController.service.ts @@ -0,0 +1,352 @@ +/** + * OpenAPI definition + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * OpenAPI spec version: v0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + *//* tslint:disable:no-unused-variable member-ordering */ + +import { Inject, Injectable, Optional } from '@angular/core'; +import { HttpClient, HttpHeaders, HttpParams, + HttpResponse, HttpEvent } from '@angular/common/http'; +import { CustomHttpUrlEncodingCodec } from '../encoder'; + +import { Observable } from 'rxjs'; + +import { Station } from '../model/station'; + +import { BASE_PATH, COLLECTION_FORMATS } from '../variables'; +import { Configuration } from '../configuration'; + + +@Injectable() +export class StationControllerService { + + protected basePath = 'http://localhost:8080'; + public defaultHeaders = new HttpHeaders(); + public configuration = new Configuration(); + + constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) { + if (basePath) { + this.basePath = basePath; + } + if (configuration) { + this.configuration = configuration; + this.basePath = basePath || configuration.basePath || this.basePath; + } + } + + /** + * @param consumes string[] mime-types + * @return true: consumes contains 'multipart/form-data', false: otherwise + */ + private canConsumeForm(consumes: string[]): boolean { + const form = 'multipart/form-data'; + for (const consume of consumes) { + if (form === consume) { + return true; + } + } + return false; + } + + + /** + * + * + * @param id + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public _delete(id: string, observe?: 'body', reportProgress?: boolean): Observable<string>; + public _delete(id: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<string>>; + public _delete(id: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<string>>; + public _delete(id: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + if (id === null || id === undefined) { + throw new Error('Required parameter id was null or undefined when calling _delete.'); + } + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + + return this.httpClient.request<string>('delete',`${this.basePath}/api/v1/station/delete/${encodeURIComponent(String(id))}`, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public deleteAll(observe?: 'body', reportProgress?: boolean): Observable<string>; + public deleteAll(observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<string>>; + public deleteAll(observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<string>>; + public deleteAll(observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + + return this.httpClient.request<string>('delete',`${this.basePath}/api/v1/station/delete/all`, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public getAll(observe?: 'body', reportProgress?: boolean): Observable<Array<Station>>; + public getAll(observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Array<Station>>>; + public getAll(observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Array<Station>>>; + public getAll(observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + + return this.httpClient.request<Array<Station>>('get',`${this.basePath}/api/v1/station/all`, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * + * @param id + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public getById(id: string, observe?: 'body', reportProgress?: boolean): Observable<Station>; + public getById(id: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Station>>; + public getById(id: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Station>>; + public getById(id: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + if (id === null || id === undefined) { + throw new Error('Required parameter id was null or undefined when calling getById.'); + } + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + + return this.httpClient.request<Station>('get',`${this.basePath}/api/v1/station/${encodeURIComponent(String(id))}`, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * + * @param name + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public getByName(name: string, observe?: 'body', reportProgress?: boolean): Observable<Station>; + public getByName(name: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Station>>; + public getByName(name: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Station>>; + public getByName(name: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + if (name === null || name === undefined) { + throw new Error('Required parameter name was null or undefined when calling getByName.'); + } + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + + return this.httpClient.request<Station>('get',`${this.basePath}/api/v1/station/name/${encodeURIComponent(String(name))}`, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * + * @param body + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public save(body: Station, observe?: 'body', reportProgress?: boolean): Observable<Station>; + public save(body: Station, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Station>>; + public save(body: Station, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Station>>; + public save(body: Station, observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + if (body === null || body === undefined) { + throw new Error('Required parameter body was null or undefined when calling save.'); + } + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + 'application/json' + ]; + const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes); + if (httpContentTypeSelected != undefined) { + headers = headers.set('Content-Type', httpContentTypeSelected); + } + + return this.httpClient.request<Station>('post',`${this.basePath}/api/v1/station/add`, + { + body: body, + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * + * @param body + * @param id + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public update(body: Station, id: string, observe?: 'body', reportProgress?: boolean): Observable<Station>; + public update(body: Station, id: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Station>>; + public update(body: Station, id: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Station>>; + public update(body: Station, id: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + if (body === null || body === undefined) { + throw new Error('Required parameter body was null or undefined when calling update.'); + } + + if (id === null || id === undefined) { + throw new Error('Required parameter id was null or undefined when calling update.'); + } + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + 'application/json' + ]; + const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes); + if (httpContentTypeSelected != undefined) { + headers = headers.set('Content-Type', httpContentTypeSelected); + } + + return this.httpClient.request<Station>('put',`${this.basePath}/api/v1/station/update/${encodeURIComponent(String(id))}`, + { + body: body, + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + +} diff --git a/projects/generated-api/src/api/userController.service.ts b/projects/generated-api/src/api/userController.service.ts new file mode 100644 index 0000000..21455a2 --- /dev/null +++ b/projects/generated-api/src/api/userController.service.ts @@ -0,0 +1,330 @@ +/** + * OpenAPI definition + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * OpenAPI spec version: v0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + *//* tslint:disable:no-unused-variable member-ordering */ + +import { Inject, Injectable, Optional } from '@angular/core'; +import { HttpClient, HttpHeaders, HttpParams, + HttpResponse, HttpEvent } from '@angular/common/http'; +import { CustomHttpUrlEncodingCodec } from '../encoder'; + +import { Observable } from 'rxjs'; + +import { Role } from '../model/role'; +import { UserLoginRequest } from '../model/userLoginRequest'; +import { UserSignUpRequest } from '../model/userSignUpRequest'; + +import { BASE_PATH, COLLECTION_FORMATS } from '../variables'; +import { Configuration } from '../configuration'; + + +@Injectable() +export class UserControllerService { + + protected basePath = 'http://localhost:8080'; + public defaultHeaders = new HttpHeaders(); + public configuration = new Configuration(); + + constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) { + if (basePath) { + this.basePath = basePath; + } + if (configuration) { + this.configuration = configuration; + this.basePath = basePath || configuration.basePath || this.basePath; + } + } + + /** + * @param consumes string[] mime-types + * @return true: consumes contains 'multipart/form-data', false: otherwise + */ + private canConsumeForm(consumes: string[]): boolean { + const form = 'multipart/form-data'; + for (const consume of consumes) { + if (form === consume) { + return true; + } + } + return false; + } + + + /** + * + * + * @param body + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public addRole(body: Role, observe?: 'body', reportProgress?: boolean): Observable<any>; + public addRole(body: Role, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>; + public addRole(body: Role, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>; + public addRole(body: Role, observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + if (body === null || body === undefined) { + throw new Error('Required parameter body was null or undefined when calling addRole.'); + } + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + 'application/json' + ]; + const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes); + if (httpContentTypeSelected != undefined) { + headers = headers.set('Content-Type', httpContentTypeSelected); + } + + return this.httpClient.request<any>('post',`${this.basePath}/api/v1/auth/add/role`, + { + body: body, + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * + * @param body + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public authenticateUser(body: UserLoginRequest, observe?: 'body', reportProgress?: boolean): Observable<any>; + public authenticateUser(body: UserLoginRequest, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>; + public authenticateUser(body: UserLoginRequest, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>; + public authenticateUser(body: UserLoginRequest, observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + if (body === null || body === undefined) { + throw new Error('Required parameter body was null or undefined when calling authenticateUser.'); + } + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + 'application/json' + ]; + const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes); + if (httpContentTypeSelected != undefined) { + headers = headers.set('Content-Type', httpContentTypeSelected); + } + + return this.httpClient.request<any>('post',`${this.basePath}/api/v1/auth/login`, + { + body: body, + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * + * @param id + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public deleteUser(id: string, observe?: 'body', reportProgress?: boolean): Observable<any>; + public deleteUser(id: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>; + public deleteUser(id: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>; + public deleteUser(id: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + if (id === null || id === undefined) { + throw new Error('Required parameter id was null or undefined when calling deleteUser.'); + } + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + + return this.httpClient.request<any>('delete',`${this.basePath}/api/v1/auth/user/delete/${encodeURIComponent(String(id))}`, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public getAllUsers(observe?: 'body', reportProgress?: boolean): Observable<any>; + public getAllUsers(observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>; + public getAllUsers(observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>; + public getAllUsers(observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + + return this.httpClient.request<any>('get',`${this.basePath}/api/v1/auth/users`, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * + * @param body + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public registerUser(body: UserSignUpRequest, observe?: 'body', reportProgress?: boolean): Observable<any>; + public registerUser(body: UserSignUpRequest, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>; + public registerUser(body: UserSignUpRequest, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>; + public registerUser(body: UserSignUpRequest, observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + if (body === null || body === undefined) { + throw new Error('Required parameter body was null or undefined when calling registerUser.'); + } + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + 'application/json' + ]; + const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes); + if (httpContentTypeSelected != undefined) { + headers = headers.set('Content-Type', httpContentTypeSelected); + } + + return this.httpClient.request<any>('post',`${this.basePath}/api/v1/auth/signup`, + { + body: body, + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * + * @param body + * @param id + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public updateUser(body: UserSignUpRequest, id: string, observe?: 'body', reportProgress?: boolean): Observable<any>; + public updateUser(body: UserSignUpRequest, id: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>; + public updateUser(body: UserSignUpRequest, id: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>; + public updateUser(body: UserSignUpRequest, id: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> { + + if (body === null || body === undefined) { + throw new Error('Required parameter body was null or undefined when calling updateUser.'); + } + + if (id === null || id === undefined) { + throw new Error('Required parameter id was null or undefined when calling updateUser.'); + } + + let headers = this.defaultHeaders; + + // to determine the Accept header + let httpHeaderAccepts: string[] = [ + '*/*' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + 'application/json' + ]; + const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes); + if (httpContentTypeSelected != undefined) { + headers = headers.set('Content-Type', httpContentTypeSelected); + } + + return this.httpClient.request<any>('put',`${this.basePath}/api/v1/auth/user/update/${encodeURIComponent(String(id))}`, + { + body: body, + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + +} diff --git a/projects/generated-api/src/configuration.ts b/projects/generated-api/src/configuration.ts new file mode 100644 index 0000000..82e8458 --- /dev/null +++ b/projects/generated-api/src/configuration.ts @@ -0,0 +1,79 @@ +export interface ConfigurationParameters { + apiKeys?: {[ key: string ]: string}; + username?: string; + password?: string; + accessToken?: string | (() => string); + basePath?: string; + withCredentials?: boolean; +} + +export class Configuration { + apiKeys?: {[ key: string ]: string}; + username?: string; + password?: string; + accessToken?: string | (() => string); + basePath?: string; + withCredentials?: boolean; + + constructor(configurationParameters: ConfigurationParameters = {}) { + this.apiKeys = configurationParameters.apiKeys; + this.username = configurationParameters.username; + this.password = configurationParameters.password; + this.accessToken = configurationParameters.accessToken; + this.basePath = configurationParameters.basePath; + this.withCredentials = configurationParameters.withCredentials; + } + + /** + * Select the correct content-type to use for a request. + * Uses {@link Configuration#isJsonMime} to determine the correct content-type. + * If no content type is found return the first found type if the contentTypes is not empty + * @param contentTypes - the array of content types that are available for selection + * @returns the selected content-type or <code>undefined</code> if no selection could be made. + */ + public selectHeaderContentType (contentTypes: string[]): string | undefined { + if (contentTypes.length == 0) { + return undefined; + } + + let type = contentTypes.find(x => this.isJsonMime(x)); + if (type === undefined) { + return contentTypes[0]; + } + return type; + } + + /** + * Select the correct accept content-type to use for a request. + * Uses {@link Configuration#isJsonMime} to determine the correct accept content-type. + * If no content type is found return the first found type if the contentTypes is not empty + * @param accepts - the array of content types that are available for selection. + * @returns the selected content-type or <code>undefined</code> if no selection could be made. + */ + public selectHeaderAccept(accepts: string[]): string | undefined { + if (accepts.length == 0) { + return undefined; + } + + let type = accepts.find(x => this.isJsonMime(x)); + if (type === undefined) { + return accepts[0]; + } + return type; + } + + /** + * Check if the given MIME is a JSON MIME. + * JSON MIME examples: + * application/json + * application/json; charset=UTF8 + * APPLICATION/JSON + * application/vnd.company+json + * @param mime - MIME (Multipurpose Internet Mail Extensions) + * @return True if the given MIME is JSON, false otherwise. + */ + public isJsonMime(mime: string): boolean { + const jsonMime: RegExp = new RegExp('^(application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(;.*)?$', 'i'); + return mime != null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json'); + } +} diff --git a/projects/generated-api/src/encoder.ts b/projects/generated-api/src/encoder.ts new file mode 100644 index 0000000..d34eab7 --- /dev/null +++ b/projects/generated-api/src/encoder.ts @@ -0,0 +1,20 @@ + import { HttpUrlEncodingCodec } from '@angular/common/http'; + +/** +* CustomHttpUrlEncodingCodec +* Fix plus sign (+) not encoding, so sent as blank space +* See: https://github.com/angular/angular/issues/11058#issuecomment-247367318 +*/ +export class CustomHttpUrlEncodingCodec extends HttpUrlEncodingCodec { + + override encodeKey(k: string): string { + k = super.encodeKey(k); + return k.replace(/\+/gi, '%2B'); + } + + override encodeValue(v: string): string { + v = super.encodeValue(v); + return v.replace(/\+/gi, '%2B'); + } +} + diff --git a/projects/generated-api/src/git_push.sh b/projects/generated-api/src/git_push.sh new file mode 100644 index 0000000..ae01b18 --- /dev/null +++ b/projects/generated-api/src/git_push.sh @@ -0,0 +1,52 @@ +#!/bin/sh +# ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/ +# +# Usage example: /bin/sh ./git_push.sh wing328 swagger-petstore-perl "minor update" + +git_user_id=$1 +git_repo_id=$2 +release_note=$3 + +if [ "$git_user_id" = "" ]; then + git_user_id="GIT_USER_ID" + echo "[INFO] No command line input provided. Set \$git_user_id to $git_user_id" +fi + +if [ "$git_repo_id" = "" ]; then + git_repo_id="GIT_REPO_ID" + echo "[INFO] No command line input provided. Set \$git_repo_id to $git_repo_id" +fi + +if [ "$release_note" = "" ]; then + release_note="Minor update" + echo "[INFO] No command line input provided. Set \$release_note to $release_note" +fi + +# Initialize the local directory as a Git repository +git init + +# Adds the files in the local repository and stages them for commit. +git add . + +# Commits the tracked changes and prepares them to be pushed to a remote repository. +git commit -m "$release_note" + +# Sets the new remote +git_remote=`git remote` +if [ "$git_remote" = "" ]; then # git remote not defined + + if [ "$GIT_TOKEN" = "" ]; then + echo "[INFO] \$GIT_TOKEN (environment variable) is not set. Using the git credential in your environment." + git remote add origin https://github.com/${git_user_id}/${git_repo_id}.git + else + git remote add origin https://${git_user_id}:${GIT_TOKEN}@github.com/${git_user_id}/${git_repo_id}.git + fi + +fi + +git pull origin master + +# Pushes (Forces) the changes in the local repository up to the remote repository +echo "Git pushing to https://github.com/${git_user_id}/${git_repo_id}.git" +git push origin master 2>&1 | grep -v 'To https' + diff --git a/projects/generated-api/src/index.ts b/projects/generated-api/src/index.ts new file mode 100644 index 0000000..c312b70 --- /dev/null +++ b/projects/generated-api/src/index.ts @@ -0,0 +1,5 @@ +export * from './api/api'; +export * from './model/models'; +export * from './variables'; +export * from './configuration'; +export * from './api.module'; \ No newline at end of file diff --git a/projects/generated-api/src/model/avgMinMax.ts b/projects/generated-api/src/model/avgMinMax.ts new file mode 100644 index 0000000..c39b97c --- /dev/null +++ b/projects/generated-api/src/model/avgMinMax.ts @@ -0,0 +1,40 @@ +/** + * OpenAPI definition + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * OpenAPI spec version: v0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ +import { ValueWithTimestamp } from './valueWithTimestamp'; + +export interface AvgMinMax { + name?: string; + min?: ValueWithTimestamp; + max?: ValueWithTimestamp; + avg?: number; + measurementType?: AvgMinMax.MeasurementTypeEnum; + isSensorGroup?: boolean; +} +export namespace AvgMinMax { + export type MeasurementTypeEnum = 'PRECIPITATION' | 'SOLAR_RADIATION' | 'SOIL_MOISTURE' | 'SOIL_TEMPERATURE' | 'HUMIDITY' | 'TEMPERATURE' | 'CIRCUMFERENCE_INCREMENT' | 'SHUNT_VOLTAGE' | 'BUS_VOLTAGE' | 'CURRENT_mA' | 'POWER_mW' | 'LOAD_VOLTAGE_V' | 'INA219_OVERFLOW' | 'BATTERY_VOLTAGE'; + export const MeasurementTypeEnum = { + PRECIPITATION: 'PRECIPITATION' as MeasurementTypeEnum, + SOLARRADIATION: 'SOLAR_RADIATION' as MeasurementTypeEnum, + SOILMOISTURE: 'SOIL_MOISTURE' as MeasurementTypeEnum, + SOILTEMPERATURE: 'SOIL_TEMPERATURE' as MeasurementTypeEnum, + HUMIDITY: 'HUMIDITY' as MeasurementTypeEnum, + TEMPERATURE: 'TEMPERATURE' as MeasurementTypeEnum, + CIRCUMFERENCEINCREMENT: 'CIRCUMFERENCE_INCREMENT' as MeasurementTypeEnum, + SHUNTVOLTAGE: 'SHUNT_VOLTAGE' as MeasurementTypeEnum, + BUSVOLTAGE: 'BUS_VOLTAGE' as MeasurementTypeEnum, + CURRENTMA: 'CURRENT_mA' as MeasurementTypeEnum, + POWERMW: 'POWER_mW' as MeasurementTypeEnum, + LOADVOLTAGEV: 'LOAD_VOLTAGE_V' as MeasurementTypeEnum, + INA219OVERFLOW: 'INA219_OVERFLOW' as MeasurementTypeEnum, + BATTERYVOLTAGE: 'BATTERY_VOLTAGE' as MeasurementTypeEnum + }; +} \ No newline at end of file diff --git a/projects/generated-api/src/model/client.ts b/projects/generated-api/src/model/client.ts new file mode 100644 index 0000000..ddbedf2 --- /dev/null +++ b/projects/generated-api/src/model/client.ts @@ -0,0 +1,20 @@ +/** + * OpenAPI definition + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * OpenAPI spec version: v0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +export interface Client { + id?: string; + name?: string; + mac?: string; + description?: string; + connectionType?: string; + sensors?: Array<string>; +} \ No newline at end of file diff --git a/projects/generated-api/src/model/dendrometerDailyValue.ts b/projects/generated-api/src/model/dendrometerDailyValue.ts new file mode 100644 index 0000000..ed4aede --- /dev/null +++ b/projects/generated-api/src/model/dendrometerDailyValue.ts @@ -0,0 +1,21 @@ +/** + * OpenAPI definition + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * OpenAPI spec version: v0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ +import { DendrometerDeltaR } from './dendrometerDeltaR'; +import { DendrometerMDS } from './dendrometerMDS'; + +export interface DendrometerDailyValue { + name?: string; + mds?: DendrometerMDS; + deltaR?: DendrometerDeltaR; + std?: number; + isSensorGroup?: boolean; +} \ No newline at end of file diff --git a/projects/generated-api/src/model/dendrometerDeltaR.ts b/projects/generated-api/src/model/dendrometerDeltaR.ts new file mode 100644 index 0000000..2f011c6 --- /dev/null +++ b/projects/generated-api/src/model/dendrometerDeltaR.ts @@ -0,0 +1,16 @@ +/** + * OpenAPI definition + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * OpenAPI spec version: v0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +export interface DendrometerDeltaR { + value?: number; + duration?: number; +} \ No newline at end of file diff --git a/projects/generated-api/src/model/dendrometerMDS.ts b/projects/generated-api/src/model/dendrometerMDS.ts new file mode 100644 index 0000000..37d465e --- /dev/null +++ b/projects/generated-api/src/model/dendrometerMDS.ts @@ -0,0 +1,16 @@ +/** + * OpenAPI definition + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * OpenAPI spec version: v0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +export interface DendrometerMDS { + value?: number; + duration?: number; +} \ No newline at end of file diff --git a/projects/generated-api/src/model/dendrometerValue.ts b/projects/generated-api/src/model/dendrometerValue.ts new file mode 100644 index 0000000..10191f2 --- /dev/null +++ b/projects/generated-api/src/model/dendrometerValue.ts @@ -0,0 +1,26 @@ +/** + * OpenAPI definition + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * OpenAPI spec version: v0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +export interface DendrometerValue { + timestamp?: Date; + value?: number; + fluctuationType?: DendrometerValue.FluctuationTypeEnum; +} +export namespace DendrometerValue { + export type FluctuationTypeEnum = 'CONTRACTION' | 'EXPANSION' | 'STEM_RADIUS_INCREASE' | 'STEM_RADIUS_STABLE'; + export const FluctuationTypeEnum = { + CONTRACTION: 'CONTRACTION' as FluctuationTypeEnum, + EXPANSION: 'EXPANSION' as FluctuationTypeEnum, + STEMRADIUSINCREASE: 'STEM_RADIUS_INCREASE' as FluctuationTypeEnum, + STEMRADIUSSTABLE: 'STEM_RADIUS_STABLE' as FluctuationTypeEnum + }; +} \ No newline at end of file diff --git a/projects/generated-api/src/model/document.ts b/projects/generated-api/src/model/document.ts new file mode 100644 index 0000000..722a36f --- /dev/null +++ b/projects/generated-api/src/model/document.ts @@ -0,0 +1,19 @@ +// @ts-ignore +/** + * OpenAPI definition + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * OpenAPI spec version: v0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +// @ts-ignore +export interface Document extends null<String, any> { + [key: string]: any; + + +} diff --git a/projects/generated-api/src/model/host.ts b/projects/generated-api/src/model/host.ts new file mode 100644 index 0000000..90a9dfb --- /dev/null +++ b/projects/generated-api/src/model/host.ts @@ -0,0 +1,18 @@ +/** + * OpenAPI definition + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * OpenAPI spec version: v0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +export interface Host { + id?: string; + name?: string; + simId?: string; + mac?: string; +} \ No newline at end of file diff --git a/projects/generated-api/src/model/levelOneResponse.ts b/projects/generated-api/src/model/levelOneResponse.ts new file mode 100644 index 0000000..51d4257 --- /dev/null +++ b/projects/generated-api/src/model/levelOneResponse.ts @@ -0,0 +1,20 @@ +/** + * OpenAPI definition + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * OpenAPI spec version: v0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ +import { AvgMinMax } from './avgMinMax'; +import { DendrometerDailyValue } from './dendrometerDailyValue'; +import { SumOrAvg } from './sumOrAvg'; + +export interface LevelOneResponse { + sumOrAvg?: Array<SumOrAvg>; + avgMinMax?: Array<AvgMinMax>; + dendrometerDailyValues?: Array<DendrometerDailyValue>; +} \ No newline at end of file diff --git a/projects/generated-api/src/model/location.ts b/projects/generated-api/src/model/location.ts new file mode 100644 index 0000000..5646ae6 --- /dev/null +++ b/projects/generated-api/src/model/location.ts @@ -0,0 +1,18 @@ +/** + * OpenAPI definition + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * OpenAPI spec version: v0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +export interface Location { + latitude?: number; + longitude?: number; + altitude?: number; + comment?: string; +} \ No newline at end of file diff --git a/projects/generated-api/src/model/measurement.ts b/projects/generated-api/src/model/measurement.ts new file mode 100644 index 0000000..c818157 --- /dev/null +++ b/projects/generated-api/src/model/measurement.ts @@ -0,0 +1,53 @@ +/** + * OpenAPI definition + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * OpenAPI spec version: v0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +export interface Measurement { + name?: string; + type?: Measurement.TypeEnum; + maxValue?: number; + minValue?: number; + unit?: string; + comment?: string; + precision?: number; + maxReadoutDifference?: number; + maxFrozenTimeInSeconds?: number; + maxRateOfChange?: number; + minVariationCoefficient?: number; + latitude?: number; + longitude?: number; + initialCircumference?: number; + treeType?: Measurement.TreeTypeEnum; +} +export namespace Measurement { + export type TypeEnum = 'PRECIPITATION' | 'SOLAR_RADIATION' | 'SOIL_MOISTURE' | 'SOIL_TEMPERATURE' | 'HUMIDITY' | 'TEMPERATURE' | 'CIRCUMFERENCE_INCREMENT' | 'SHUNT_VOLTAGE' | 'BUS_VOLTAGE' | 'CURRENT_mA' | 'POWER_mW' | 'LOAD_VOLTAGE_V' | 'INA219_OVERFLOW' | 'BATTERY_VOLTAGE'; + export const TypeEnum = { + PRECIPITATION: 'PRECIPITATION' as TypeEnum, + SOLARRADIATION: 'SOLAR_RADIATION' as TypeEnum, + SOILMOISTURE: 'SOIL_MOISTURE' as TypeEnum, + SOILTEMPERATURE: 'SOIL_TEMPERATURE' as TypeEnum, + HUMIDITY: 'HUMIDITY' as TypeEnum, + TEMPERATURE: 'TEMPERATURE' as TypeEnum, + CIRCUMFERENCEINCREMENT: 'CIRCUMFERENCE_INCREMENT' as TypeEnum, + SHUNTVOLTAGE: 'SHUNT_VOLTAGE' as TypeEnum, + BUSVOLTAGE: 'BUS_VOLTAGE' as TypeEnum, + CURRENTMA: 'CURRENT_mA' as TypeEnum, + POWERMW: 'POWER_mW' as TypeEnum, + LOADVOLTAGEV: 'LOAD_VOLTAGE_V' as TypeEnum, + INA219OVERFLOW: 'INA219_OVERFLOW' as TypeEnum, + BATTERYVOLTAGE: 'BATTERY_VOLTAGE' as TypeEnum + }; + export type TreeTypeEnum = 'LARCH' | 'SPRUCE'; + export const TreeTypeEnum = { + LARCH: 'LARCH' as TreeTypeEnum, + SPRUCE: 'SPRUCE' as TreeTypeEnum + }; +} \ No newline at end of file diff --git a/projects/generated-api/src/model/models.ts b/projects/generated-api/src/model/models.ts new file mode 100644 index 0000000..2e2d97a --- /dev/null +++ b/projects/generated-api/src/model/models.ts @@ -0,0 +1,20 @@ +export * from './avgMinMax'; +export * from './client'; +export * from './dendrometerDailyValue'; +export * from './dendrometerDeltaR'; +export * from './dendrometerMDS'; +export * from './document'; +export * from './host'; +export * from './levelOneResponse'; +export * from './location'; +export * from './measurement'; +export * from './readingPayload'; +export * from './readingValue'; +export * from './role'; +export * from './sensor'; +export * from './sensorGroup'; +export * from './station'; +export * from './sumOrAvg'; +export * from './userLoginRequest'; +export * from './userSignUpRequest'; +export * from './valueWithTimestamp'; diff --git a/projects/generated-api/src/model/readingPayload.ts b/projects/generated-api/src/model/readingPayload.ts new file mode 100644 index 0000000..7366f5d --- /dev/null +++ b/projects/generated-api/src/model/readingPayload.ts @@ -0,0 +1,55 @@ +/** + * OpenAPI definition + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * OpenAPI spec version: v0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ +import { ReadingValue } from './readingValue'; + +export interface ReadingPayload { + host?: string; + client?: string; + sensorProtocol?: string; + protocolAddress?: string; + hardwareName?: string; + readings?: Array<ReadingValue>; + timestamp?: number; + sensorError?: ReadingPayload.SensorErrorEnum; +} +export namespace ReadingPayload { + export type SensorErrorEnum = 'NO_ERROR' | 'INVALID_TIMESTAMP' | 'INVALID_SENSOR_ID' | 'INVALID_SENSOR_TYPE' | 'INVALID_READING_VALUE_RANGE' | 'INVALID_READING_VALUE_TOO_LOW' | 'INVALID_READING_VALUE_TOO_HIGH' | 'INVALID_READING_VALUE_NAN' | 'INVALID_READING_VALUE_DUPLICATE' | 'INVALID_READING_VALUE_BELOW_VAR_COFF' | 'INVALID_READING_VALUE_ABOVE_RATE_OF_CHANGE' | 'INVALID_READING_VALUE_LOWER_FOR_SOLAR_ELEVATION' | 'INVALID_READING_VALUE_NOT_ZERO_FOR_SOLAR_ELEVATION' | 'INVALID_READING_VALUE_FROZEN' | 'INVALID_READING_VALUE_SPIKE' | 'DATA_OK' | 'SENSOR_NOT_FOUND' | 'SENSOR_NOT_CONNECTED' | 'NO_DATA' | 'SENSOR_DOES_NOT_RETURN_DATA' | 'BATTERY_VOLTAGE_TOO_LOW' | 'INVALID_VALUE' | 'SENSOR_INIT_FAILED' | 'INA219_OVERFLOW' | 'CONNECTION_ENDED_PREMATURELY' | 'WRONG_CRC' | 'UNKNOWN_ERROR_TYPE'; + export const SensorErrorEnum = { + NOERROR: 'NO_ERROR' as SensorErrorEnum, + INVALIDTIMESTAMP: 'INVALID_TIMESTAMP' as SensorErrorEnum, + INVALIDSENSORID: 'INVALID_SENSOR_ID' as SensorErrorEnum, + INVALIDSENSORTYPE: 'INVALID_SENSOR_TYPE' as SensorErrorEnum, + INVALIDREADINGVALUERANGE: 'INVALID_READING_VALUE_RANGE' as SensorErrorEnum, + INVALIDREADINGVALUETOOLOW: 'INVALID_READING_VALUE_TOO_LOW' as SensorErrorEnum, + INVALIDREADINGVALUETOOHIGH: 'INVALID_READING_VALUE_TOO_HIGH' as SensorErrorEnum, + INVALIDREADINGVALUENAN: 'INVALID_READING_VALUE_NAN' as SensorErrorEnum, + INVALIDREADINGVALUEDUPLICATE: 'INVALID_READING_VALUE_DUPLICATE' as SensorErrorEnum, + INVALIDREADINGVALUEBELOWVARCOFF: 'INVALID_READING_VALUE_BELOW_VAR_COFF' as SensorErrorEnum, + INVALIDREADINGVALUEABOVERATEOFCHANGE: 'INVALID_READING_VALUE_ABOVE_RATE_OF_CHANGE' as SensorErrorEnum, + INVALIDREADINGVALUELOWERFORSOLARELEVATION: 'INVALID_READING_VALUE_LOWER_FOR_SOLAR_ELEVATION' as SensorErrorEnum, + INVALIDREADINGVALUENOTZEROFORSOLARELEVATION: 'INVALID_READING_VALUE_NOT_ZERO_FOR_SOLAR_ELEVATION' as SensorErrorEnum, + INVALIDREADINGVALUEFROZEN: 'INVALID_READING_VALUE_FROZEN' as SensorErrorEnum, + INVALIDREADINGVALUESPIKE: 'INVALID_READING_VALUE_SPIKE' as SensorErrorEnum, + DATAOK: 'DATA_OK' as SensorErrorEnum, + SENSORNOTFOUND: 'SENSOR_NOT_FOUND' as SensorErrorEnum, + SENSORNOTCONNECTED: 'SENSOR_NOT_CONNECTED' as SensorErrorEnum, + NODATA: 'NO_DATA' as SensorErrorEnum, + SENSORDOESNOTRETURNDATA: 'SENSOR_DOES_NOT_RETURN_DATA' as SensorErrorEnum, + BATTERYVOLTAGETOOLOW: 'BATTERY_VOLTAGE_TOO_LOW' as SensorErrorEnum, + INVALIDVALUE: 'INVALID_VALUE' as SensorErrorEnum, + SENSORINITFAILED: 'SENSOR_INIT_FAILED' as SensorErrorEnum, + INA219OVERFLOW: 'INA219_OVERFLOW' as SensorErrorEnum, + CONNECTIONENDEDPREMATURELY: 'CONNECTION_ENDED_PREMATURELY' as SensorErrorEnum, + WRONGCRC: 'WRONG_CRC' as SensorErrorEnum, + UNKNOWNERRORTYPE: 'UNKNOWN_ERROR_TYPE' as SensorErrorEnum + }; +} \ No newline at end of file diff --git a/projects/generated-api/src/model/readingValue.ts b/projects/generated-api/src/model/readingValue.ts new file mode 100644 index 0000000..1386949 --- /dev/null +++ b/projects/generated-api/src/model/readingValue.ts @@ -0,0 +1,35 @@ +/** + * OpenAPI definition + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * OpenAPI spec version: v0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +export interface ReadingValue { + name?: ReadingValue.NameEnum; + value?: number; +} +export namespace ReadingValue { + export type NameEnum = 'PRECIPITATION' | 'SOLAR_RADIATION' | 'SOIL_MOISTURE' | 'SOIL_TEMPERATURE' | 'HUMIDITY' | 'TEMPERATURE' | 'CIRCUMFERENCE_INCREMENT' | 'SHUNT_VOLTAGE' | 'BUS_VOLTAGE' | 'CURRENT_mA' | 'POWER_mW' | 'LOAD_VOLTAGE_V' | 'INA219_OVERFLOW' | 'BATTERY_VOLTAGE'; + export const NameEnum = { + PRECIPITATION: 'PRECIPITATION' as NameEnum, + SOLARRADIATION: 'SOLAR_RADIATION' as NameEnum, + SOILMOISTURE: 'SOIL_MOISTURE' as NameEnum, + SOILTEMPERATURE: 'SOIL_TEMPERATURE' as NameEnum, + HUMIDITY: 'HUMIDITY' as NameEnum, + TEMPERATURE: 'TEMPERATURE' as NameEnum, + CIRCUMFERENCEINCREMENT: 'CIRCUMFERENCE_INCREMENT' as NameEnum, + SHUNTVOLTAGE: 'SHUNT_VOLTAGE' as NameEnum, + BUSVOLTAGE: 'BUS_VOLTAGE' as NameEnum, + CURRENTMA: 'CURRENT_mA' as NameEnum, + POWERMW: 'POWER_mW' as NameEnum, + LOADVOLTAGEV: 'LOAD_VOLTAGE_V' as NameEnum, + INA219OVERFLOW: 'INA219_OVERFLOW' as NameEnum, + BATTERYVOLTAGE: 'BATTERY_VOLTAGE' as NameEnum + }; +} \ No newline at end of file diff --git a/projects/generated-api/src/model/role.ts b/projects/generated-api/src/model/role.ts new file mode 100644 index 0000000..4386c65 --- /dev/null +++ b/projects/generated-api/src/model/role.ts @@ -0,0 +1,24 @@ +/** + * OpenAPI definition + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * OpenAPI spec version: v0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +export interface Role { + id?: string; + name?: Role.NameEnum; +} +export namespace Role { + export type NameEnum = 'ROLE_USER' | 'ROLE_MANAGER' | 'ROLE_ADMIN'; + export const NameEnum = { + USER: 'ROLE_USER' as NameEnum, + MANAGER: 'ROLE_MANAGER' as NameEnum, + ADMIN: 'ROLE_ADMIN' as NameEnum + }; +} \ No newline at end of file diff --git a/projects/generated-api/src/model/sensor.ts b/projects/generated-api/src/model/sensor.ts new file mode 100644 index 0000000..a3a2146 --- /dev/null +++ b/projects/generated-api/src/model/sensor.ts @@ -0,0 +1,23 @@ +/** + * OpenAPI definition + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * OpenAPI spec version: v0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ +import { Measurement } from './measurement'; + +export interface Sensor { + id?: string; + name?: string; + protocol?: string; + protocolAddress?: string; + hardwareName?: string; + uniqueHardwareName?: string; + description?: string; + measurements?: Array<Measurement>; +} \ No newline at end of file diff --git a/projects/generated-api/src/model/sensorGroup.ts b/projects/generated-api/src/model/sensorGroup.ts new file mode 100644 index 0000000..ab98ec6 --- /dev/null +++ b/projects/generated-api/src/model/sensorGroup.ts @@ -0,0 +1,38 @@ +/** + * OpenAPI definition + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * OpenAPI spec version: v0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +export interface SensorGroup { + id?: string; + name?: string; + sensors?: Array<string>; + station?: string; + measurementType?: SensorGroup.MeasurementTypeEnum; +} +export namespace SensorGroup { + export type MeasurementTypeEnum = 'PRECIPITATION' | 'SOLAR_RADIATION' | 'SOIL_MOISTURE' | 'SOIL_TEMPERATURE' | 'HUMIDITY' | 'TEMPERATURE' | 'CIRCUMFERENCE_INCREMENT' | 'SHUNT_VOLTAGE' | 'BUS_VOLTAGE' | 'CURRENT_mA' | 'POWER_mW' | 'LOAD_VOLTAGE_V' | 'INA219_OVERFLOW' | 'BATTERY_VOLTAGE'; + export const MeasurementTypeEnum = { + PRECIPITATION: 'PRECIPITATION' as MeasurementTypeEnum, + SOLARRADIATION: 'SOLAR_RADIATION' as MeasurementTypeEnum, + SOILMOISTURE: 'SOIL_MOISTURE' as MeasurementTypeEnum, + SOILTEMPERATURE: 'SOIL_TEMPERATURE' as MeasurementTypeEnum, + HUMIDITY: 'HUMIDITY' as MeasurementTypeEnum, + TEMPERATURE: 'TEMPERATURE' as MeasurementTypeEnum, + CIRCUMFERENCEINCREMENT: 'CIRCUMFERENCE_INCREMENT' as MeasurementTypeEnum, + SHUNTVOLTAGE: 'SHUNT_VOLTAGE' as MeasurementTypeEnum, + BUSVOLTAGE: 'BUS_VOLTAGE' as MeasurementTypeEnum, + CURRENTMA: 'CURRENT_mA' as MeasurementTypeEnum, + POWERMW: 'POWER_mW' as MeasurementTypeEnum, + LOADVOLTAGEV: 'LOAD_VOLTAGE_V' as MeasurementTypeEnum, + INA219OVERFLOW: 'INA219_OVERFLOW' as MeasurementTypeEnum, + BATTERYVOLTAGE: 'BATTERY_VOLTAGE' as MeasurementTypeEnum + }; +} \ No newline at end of file diff --git a/projects/generated-api/src/model/station.ts b/projects/generated-api/src/model/station.ts new file mode 100644 index 0000000..5889acb --- /dev/null +++ b/projects/generated-api/src/model/station.ts @@ -0,0 +1,23 @@ +/** + * OpenAPI definition + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * OpenAPI spec version: v0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ +import { Location } from './location'; + +export interface Station { + id?: string; + name?: string; + location?: Location; + createdDate?: Date; + updatedDate?: Date; + host?: string; + clients?: Array<string>; + diary?: string; +} \ No newline at end of file diff --git a/projects/generated-api/src/model/sumOrAvg.ts b/projects/generated-api/src/model/sumOrAvg.ts new file mode 100644 index 0000000..e76af1b --- /dev/null +++ b/projects/generated-api/src/model/sumOrAvg.ts @@ -0,0 +1,43 @@ +/** + * OpenAPI definition + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * OpenAPI spec version: v0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +export interface SumOrAvg { + type?: SumOrAvg.TypeEnum; + name?: string; + value?: number; + measurementType?: SumOrAvg.MeasurementTypeEnum; + isSensorGroup?: boolean; +} +export namespace SumOrAvg { + export type TypeEnum = 'SUM' | 'AVG'; + export const TypeEnum = { + SUM: 'SUM' as TypeEnum, + AVG: 'AVG' as TypeEnum + }; + export type MeasurementTypeEnum = 'PRECIPITATION' | 'SOLAR_RADIATION' | 'SOIL_MOISTURE' | 'SOIL_TEMPERATURE' | 'HUMIDITY' | 'TEMPERATURE' | 'CIRCUMFERENCE_INCREMENT' | 'SHUNT_VOLTAGE' | 'BUS_VOLTAGE' | 'CURRENT_mA' | 'POWER_mW' | 'LOAD_VOLTAGE_V' | 'INA219_OVERFLOW' | 'BATTERY_VOLTAGE'; + export const MeasurementTypeEnum = { + PRECIPITATION: 'PRECIPITATION' as MeasurementTypeEnum, + SOLARRADIATION: 'SOLAR_RADIATION' as MeasurementTypeEnum, + SOILMOISTURE: 'SOIL_MOISTURE' as MeasurementTypeEnum, + SOILTEMPERATURE: 'SOIL_TEMPERATURE' as MeasurementTypeEnum, + HUMIDITY: 'HUMIDITY' as MeasurementTypeEnum, + TEMPERATURE: 'TEMPERATURE' as MeasurementTypeEnum, + CIRCUMFERENCEINCREMENT: 'CIRCUMFERENCE_INCREMENT' as MeasurementTypeEnum, + SHUNTVOLTAGE: 'SHUNT_VOLTAGE' as MeasurementTypeEnum, + BUSVOLTAGE: 'BUS_VOLTAGE' as MeasurementTypeEnum, + CURRENTMA: 'CURRENT_mA' as MeasurementTypeEnum, + POWERMW: 'POWER_mW' as MeasurementTypeEnum, + LOADVOLTAGEV: 'LOAD_VOLTAGE_V' as MeasurementTypeEnum, + INA219OVERFLOW: 'INA219_OVERFLOW' as MeasurementTypeEnum, + BATTERYVOLTAGE: 'BATTERY_VOLTAGE' as MeasurementTypeEnum + }; +} \ No newline at end of file diff --git a/projects/generated-api/src/model/threePhaseDendrometer.ts b/projects/generated-api/src/model/threePhaseDendrometer.ts new file mode 100644 index 0000000..c38d745 --- /dev/null +++ b/projects/generated-api/src/model/threePhaseDendrometer.ts @@ -0,0 +1,18 @@ +/** + * OpenAPI definition + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * OpenAPI spec version: v0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ +import { DendrometerValue } from './dendrometerValue'; + +export interface ThreePhaseDendrometer { + name?: string; + readings?: Array<DendrometerValue>; + isSensorGroup?: boolean; +} \ No newline at end of file diff --git a/projects/generated-api/src/model/userLoginRequest.ts b/projects/generated-api/src/model/userLoginRequest.ts new file mode 100644 index 0000000..3a5f441 --- /dev/null +++ b/projects/generated-api/src/model/userLoginRequest.ts @@ -0,0 +1,16 @@ +/** + * OpenAPI definition + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * OpenAPI spec version: v0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +export interface UserLoginRequest { + username: string; + password: string; +} \ No newline at end of file diff --git a/projects/generated-api/src/model/userSignUpRequest.ts b/projects/generated-api/src/model/userSignUpRequest.ts new file mode 100644 index 0000000..15c8ee7 --- /dev/null +++ b/projects/generated-api/src/model/userSignUpRequest.ts @@ -0,0 +1,18 @@ +/** + * OpenAPI definition + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * OpenAPI spec version: v0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +export interface UserSignUpRequest { + username: string; + email: string; + password: string; + roles?: Array<string>; +} \ No newline at end of file diff --git a/projects/generated-api/src/model/valueWithTimestamp.ts b/projects/generated-api/src/model/valueWithTimestamp.ts new file mode 100644 index 0000000..52e03b3 --- /dev/null +++ b/projects/generated-api/src/model/valueWithTimestamp.ts @@ -0,0 +1,16 @@ +/** + * OpenAPI definition + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * OpenAPI spec version: v0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +export interface ValueWithTimestamp { + value?: number; + timestamp?: Date; +} \ No newline at end of file diff --git a/projects/generated-api/src/ng-package.json b/projects/generated-api/src/ng-package.json new file mode 100644 index 0000000..3b17900 --- /dev/null +++ b/projects/generated-api/src/ng-package.json @@ -0,0 +1,6 @@ +{ + "$schema": "./node_modules/ng-packagr/ng-package.schema.json", + "lib": { + "entryFile": "index.ts" + } +} diff --git a/projects/generated-api/src/variables.ts b/projects/generated-api/src/variables.ts new file mode 100644 index 0000000..6fe5854 --- /dev/null +++ b/projects/generated-api/src/variables.ts @@ -0,0 +1,9 @@ +import { InjectionToken } from '@angular/core'; + +export const BASE_PATH = new InjectionToken<string>('basePath'); +export const COLLECTION_FORMATS = { + 'csv': ',', + 'tsv': ' ', + 'ssv': ' ', + 'pipes': '|' +} diff --git a/projects/swagger-client/src/api/serverController.service.ts b/projects/swagger-client/src/api/serverController.service.ts index 5f3e53f..197714b 100644 --- a/projects/swagger-client/src/api/serverController.service.ts +++ b/projects/swagger-client/src/api/serverController.service.ts @@ -3,7 +3,7 @@ * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) * * OpenAPI spec version: v0 - * + * * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git @@ -59,8 +59,8 @@ export class ServerControllerService { /** * Add a reading to the database - * - * @param body + * + * @param body * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. * @param reportProgress flag to report request and response progress. */ @@ -106,7 +106,7 @@ export class ServerControllerService { /** * Delete all readings from database - * + * * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. * @param reportProgress flag to report request and response progress. */ @@ -142,9 +142,9 @@ export class ServerControllerService { /** * Get level one response for a group id and a time range - * - * @param station - * @param date + * + * @param station + * @param date * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. * @param reportProgress flag to report request and response progress. */ @@ -194,11 +194,11 @@ export class ServerControllerService { /** * Get readings by sensor name and error type and time range - * - * @param sensorId - * @param errorType - * @param from - * @param to + * + * @param sensorId + * @param errorType + * @param from + * @param to * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. * @param reportProgress flag to report request and response progress. */ @@ -265,10 +265,10 @@ export class ServerControllerService { /** * Get readings by sensor name and time range - * - * @param sensorId - * @param from - * @param to + * + * @param sensorId + * @param from + * @param to * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. * @param reportProgress flag to report request and response progress. */ diff --git a/src/app/app.component.html b/src/app/app.component.html index eea828c..a70525f 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -35,15 +35,7 @@ - - - - - - -<app-thermometer></app-thermometer> - - +<app-home-tailwindcss></app-home-tailwindcss> diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 9ec6a42..ac504c1 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -41,6 +41,7 @@ import { InterceptorService } from './shared/auth/interceptor.service'; import {CjsTimelineMultiple} from "./module/components/charts/Cjs-timeline-multiple/light-chart.component"; import {MatButtonModule} from "@angular/material/button"; import { ThermometerComponent } from './module/components/thermometer/thermometer.component'; +import { HomeTailwindcssComponent } from './module/pages/home-tailwindcss/home-tailwindcss.component'; @NgModule({ declarations: [ @@ -67,7 +68,8 @@ import { ThermometerComponent } from './module/components/thermometer/thermomete LightChartComponent, ProViewComponent, CjsTimelineMultiple, - ThermometerComponent + ThermometerComponent, + HomeTailwindcssComponent ], imports: [ diff --git a/src/app/module/components/lev0Ver2/lev0.component.html b/src/app/module/components/lev0Ver2/lev0.component.html index 656a1ce..294eb37 100644 --- a/src/app/module/components/lev0Ver2/lev0.component.html +++ b/src/app/module/components/lev0Ver2/lev0.component.html @@ -65,10 +65,46 @@ </div> + <div class="w-full flex flex-row justify-start flex-wrap "> + <div class="flex-col p-2 m-4 bg-white justify-center items-center rounded" + *ngFor="let dent of dentrometerDailyValue" + [ngStyle]="{'box-shadow':dent.isSensorGroup ? '15px 15px rgb(173,216,230,0.4) ,30px 30px rgb(173,216,230,0.2)':''}"> - <div class="w-full flex flex-row items-end justify-center flex-wrap"> + <h1 class="flex font-bold text-4sm mb-6 justify-center">{{dent.name}}</h1> + <div class="mx-8 flex justify-between"> + + <div class="flex-col content-center items-center justify-center"> + <div class="flex mx-2 flex items-center border-b-2 border-black "> + <i class="material-icons text-blue-500 text-2xl mr-2">unfold_less</i> + <h5 class="text-gray-500 text-xs">Maximum daily shrinkage</h5> + </div> + <div class="flex items-end justify-center"> + <h1 class=" flex justify-center text-3xl font-bold">{{dent.mds?.value}}</h1> + <h3 class="mb-1 ml-1 text-slate-400">mm </h3> + </div> + </div> + + <div class="flex-col"> + <div class="flex mx-2 flex items-center border-b-2 border-black "> + <i class="material-icons text-yellow-500 text-2xl mr-2">vertical_align_top</i> + <h5 class="text-gray-500 text-xs">Radius increment</h5> + </div> + <div class="flex items-end justify-center"> + <h1 class=" flex justify-center text-3xl font-bold">{{dent.deltaR?.value}}</h1> + <h3 class="mb-1 ml-1 text-slate-400">mm </h3> + </div> + </div> + + </div> + </div> + + </div> + + + + <div class="w-full flex flex-row items-end justify-center flex-wrap"> <div class="card-dendrometer"> <h1>Dendrometer</h1> diff --git a/src/app/module/components/lev0Ver2/lev0.component.ts b/src/app/module/components/lev0Ver2/lev0.component.ts index cb9d3f8..fe8ea6b 100644 --- a/src/app/module/components/lev0Ver2/lev0.component.ts +++ b/src/app/module/components/lev0Ver2/lev0.component.ts @@ -6,6 +6,7 @@ import {SumOrAvg} from "../../../core/service/level1/SumOrAvg"; import {FormControl, FormGroup} from "@angular/forms"; import {DatePipe} from "@angular/common"; import {ThreePhaseDendrometer} from "../../../core/service/level1/ThreePhaseDendrometer"; +import {DendrometerDailyValue} from "../../../../../projects/generated-api/src"; @Component({ selector: 'app-lev0Ver2', @@ -13,17 +14,35 @@ import {ThreePhaseDendrometer} from "../../../core/service/level1/ThreePhaseDend styleUrls: ['./lev0.component.scss'] }) export class Lev0Ver2Component { - heros: Hero[] = [ - { id: 12, name: 'Dr. Nice' }, - { id: 13, name: 'Bombasto' }, - { id: 14, name: 'Celeritas' }, - { id: 15, name: 'Magneta' }, - { id: 16, name: 'RubberMan' }, - { id: 17, name: 'Dynama' }, - { id: 18, name: 'Dr. IQ' }, - { id: 19, name: 'Magma' }, - { id: 20, name: 'Tornado' } - ]; + dentrometerDailyValue:DendrometerDailyValue[]=[ + { + name: "name", + mds: { + value: 1.23, + duration: 456 + }, + deltaR: { + value: 7.89, + duration: 2 + }, + std: 0.123, + isSensorGroup: true + }, + { + name: "name2", + mds: { + value: 1.23, + duration: 456 + }, + deltaR: { + value: 7.89, + duration: 2 + }, + std: 0.123, + isSensorGroup: true + } + ] + constructor(private api:ApiService) { this.dateControl.valueChanges.subscribe(date => { this.reload() diff --git a/src/app/module/components/pro-view/pro-view.component.html b/src/app/module/components/pro-view/pro-view.component.html index fd3b2f9..55de3dc 100644 --- a/src/app/module/components/pro-view/pro-view.component.html +++ b/src/app/module/components/pro-view/pro-view.component.html @@ -1,4 +1,4 @@ - +{{isDendrometer}} <form class="mt-10 flex flex-wrap justify-center sm:justify-between w-full [&>*]:w-full [&>*]:sm:w-1/4 [&>*]:p-2"> @@ -47,7 +47,7 @@ </mat-form-field> </form> - +<!-- <mat-form-field class=" " appearance="fill" *ngIf="t_bool"> <mat-label>Select a Station</mat-label> <input type="text" @@ -58,6 +58,7 @@ [matAutocomplete]="auto2"> <mat-error *ngIf="stationControl.hasError('invalid')">This Station does not exists</mat-error> + <mat-autocomplete #auto2="matAutocomplete"> <div *ngIf="t_bool"> <mat-select> @@ -71,6 +72,7 @@ </mat-form-field> + <mat-form-field class="" appearance="fill"> <mat-label>Favorite food</mat-label> <input matInput placeholder="Ex. Pizza" value="Sushi" [formControl]="t_control2" (focus)="onFocus()" @@ -92,6 +94,8 @@ </div> </div> {{isFocused}}{{menuOpen}} + +--> <div class="flex flex-wrap w-full justify-center sm:justify-end [&>*]:w-full [&>*]:sm:w-1/4 [&>*]:h-16 [&>*]:p-2 "> @@ -115,5 +119,5 @@ <app-Cjs-timeline-multiple [sensorData]="this.sensorData" [sensorDataArray]="this.sensorDataArray" ></app-Cjs-timeline-multiple> - +<app-Cjs-timline></app-Cjs-timline> diff --git a/src/app/module/components/pro-view/pro-view.component.ts b/src/app/module/components/pro-view/pro-view.component.ts index b7f971a..75a5b5e 100644 --- a/src/app/module/components/pro-view/pro-view.component.ts +++ b/src/app/module/components/pro-view/pro-view.component.ts @@ -4,7 +4,7 @@ import {Observable} from 'rxjs'; import {map, startWith} from 'rxjs/operators'; import { ClientControllerService, - HostControllerService, + HostControllerService, SensorControllerService, ServerControllerService, Station, StationControllerService @@ -12,13 +12,15 @@ import { import {DatePipe} from "@angular/common"; import {LogLevel, MyLoggerServiceService} from "../../../shared/service/my-logger-service.service"; +import {ThreePhaseDendrometer} from "../../../core/service/level1/ThreePhaseDendrometer"; //TODOS after from this.serverControllerService.getReadingsBySensorIdAndTimeRange return type is changed i can uncomment the @ts-ignore // @Component({ selector: 'app-pro-view', templateUrl: './pro-view.component.html', - styleUrls: ['./pro-view.component.css'] + styleUrls: ['./pro-view.component.css'], + providers: [DatePipe] }) export class ProViewComponent { stationControl = new FormControl(''); @@ -29,10 +31,14 @@ export class ProViewComponent { hostClientControl = new FormControl(); availableHostClients: string[] = ['host','station']; availableHostClientsO:checkHostsStation[]=[] + + isDendrometer:boolean=false; + threePhaseDendromete!:ThreePhaseDendrometer selected: string[] = [] selectedHostClient:string[]=[] + t_string:string[]=['Apple','Banana','Ribisel'] t_control= new FormControl(); t_filterdString!: Observable<string[]>; @@ -66,12 +72,22 @@ t_bool:boolean=true station!: Observable<Array<Station>>; constructor(private stationControllerService: StationControllerService,private hostControllerService:HostControllerService, private clientControllerService:ClientControllerService,private serverControllerService:ServerControllerService, + private sensorControllerService:SensorControllerService, + private datePipe: DatePipe, private logger:MyLoggerServiceService) { this.logger.setLevel(LogLevel.LOG) this.logger.setTopic("ProViewInputParent") } ngOnInit() { + //test for dendrometer + const date = new Date('2022-04-15T00:00:00'); + const formattedDate = this.datePipe.transform(date, 'dd-MM-yyyy'); + this.serverControllerService.getLevelOneResponseForGroupAndTimeRange("as",date).subscribe( + x=>this.logger.info("dendrometer",x) + ) + + //If Date Input changes than call Selected Method this.range.valueChanges.subscribe((value) => { this.onSelectionChange2([]) @@ -206,10 +222,20 @@ t_bool:boolean=true let dateStart = datePipe.transform(this.range.value.start, 'dd-MM-yyyyTHH:mm:ss'); let dateEnd = datePipe.transform(this.range.value.end, 'dd-MM-yyyyTHH:mm:ss'); this.logger.info("DatenInptut",dateStart,"to",dateEnd) - + this.isDendrometer=false; //just call the api if at least 1 client is selected if (this.sensorControl.value && this.sensorControl.value.length >= 1) { - + console.log("sensors",this.sensorControl.value) + let s_id:String=this.sensorControl.value[0] + this.sensorControllerService.getSensorById(s_id+"").subscribe( + s=>{ + this.logger.info("GET sensor",s) + this.logger.info("GET sensor type",s.measurements?.at(0)?.type) + if (s.measurements?.at(0)?.type=="SOLAR_RADIATION"){ + this.isDendrometer=true + } + }) + console.log("s_id",s_id) //save the data from the API in sensorDataArry=>passed to child element + used for visualisation this.sensorControl.value.forEach((sensor:string)=> this.serverControllerService.getReadingsBySensorIdAndTimeRange(sensor, dateStart + "", dateEnd + "").subscribe( diff --git a/src/app/shared/auth/interceptor.service.ts b/src/app/shared/auth/interceptor.service.ts index 83d0f5f..1fdb0d3 100644 --- a/src/app/shared/auth/interceptor.service.ts +++ b/src/app/shared/auth/interceptor.service.ts @@ -5,9 +5,9 @@ import { HttpEvent, HttpHandler, HttpInterceptor, - HttpRequest + HttpRequest, HttpResponse } from "@angular/common/http"; -import {Observable} from "rxjs"; +import {Observable, tap} from "rxjs"; @Injectable({ providedIn: 'root' }) @@ -19,7 +19,13 @@ export class InterceptorService implements HttpInterceptor{ const authHeader = {'Authorization': 'Bearer ' + localStorage.getItem('token')}; const authReq = req.clone({ setHeaders: authHeader }); console.log("Intercptor:",req) - return next.handle(authReq); + return next.handle(authReq).pipe( + tap((event: HttpEvent<any>) => { + if (event instanceof HttpResponse) { + console.log('Server response:', event); + } + }) + ); } } export const httpInterceptorProviders = [ -- GitLab