Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion specs/swagger.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2715,6 +2715,10 @@ definitions:
type: string
email:
type: string
requiresCert:
type: boolean
certificate:
type: string
ActionBody:
type: object
properties:
Expand Down Expand Up @@ -3035,4 +3039,4 @@ schemes:
- http
- https
host: 'localhost:54421'
basePath: /api/v3
basePath: /api/v3
6 changes: 4 additions & 2 deletions src/helpers/error-messages.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ module.exports = {
ALREADY_EXISTS: 'Model already exists',
INVALID_CATALOG_ITEM_ID: 'Invalid catalog item id {}',
INVALID_FLOW_ID: 'Invalid flow id {}',
INVALID_REGISTRY_ID: 'Invalid registry id {}',
INVALID_CONNECTOR_IP: 'Invalid connector IP {}',
UNABLE_TO_CREATE_ACTIVATION_CODE: 'Unable to create activation code',
UNABLE_TO_GET_ACTIVATION_CODE: 'Unable to create activation code',
Expand Down Expand Up @@ -50,11 +51,12 @@ module.exports = {
FILE_DOES_NOT_EXIST: 'File does not exist.',
RESTRICTED_PUBLISHER: "You are not allowed to add catalog item as 'Eclipse ioFog' publisher",
REQUIRED_FOG_NODE: 'ioFog node is required.',
INVALID_CONNECTOR_DOMAIN: 'Invalid connector domain {}',
CERT_PROPERTY_REQUIRED: 'Property "certificate" is required if property "requiresCert" is set to true',
CLI: {
INVALID_PORT_MAPPING: 'Port mapping parsing error. Please provide valid port mapping.',
INVALID_VOLUME_MAPPING: 'Volume mapping parsing error. Please provide valid volume mapping.',
INVALID_INTERNAL_PORT: 'Internal parsing error. Please provide valid internal port.',
INVALID_ROUTE: 'Route parsing error. Please provide valid route.'
},
INVALID_CONNECTOR_DOMAIN: 'Invalid connector domain {}'
}
};
4 changes: 3 additions & 1 deletion src/schemas/registry.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@ const registryCreate = {
"isPublic": {"type": "boolean"},
"username": {"type": "string", "minLength": 1},
"password": {"type": "string"},
"email": {"type": "string"}
"email": {"type": "string"},
"requiresCert": {"type": "boolean"},
"certificate": {"type": "string"}
},
"required": ["url", "isPublic", "username", "password", "email"],
"additionalProperties": false
Expand Down
22 changes: 17 additions & 5 deletions src/services/registry-service.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,24 +12,36 @@
*/

const RegistryManager = require('../sequelize/managers/registry-manager');
const Validator = require('../schemas')
const Errors = require('../helpers/errors')
const ChangeTrackingManager = require('../sequelize/managers/change-tracking-manager')
const Validator = require('../schemas');
const Errors = require('../helpers/errors');
const ErrorMessages = require('../helpers/error-messages');
const ChangeTrackingManager = require('../sequelize/managers/change-tracking-manager');
const TransactionDecorator = require('../decorators/transaction-decorator');
const FogManager = require('../sequelize/managers/iofog-manager')
const FogManager = require('../sequelize/managers/iofog-manager');
const Sequelize = require('sequelize');
const Op = Sequelize.Op;
const AppHelper = require('../helpers/app-helper');


const createRegistry = async function (registry, user, transaction) {
await Validator.validate(registry, Validator.schemas.registryCreate);
if (registry.requiresCert && registry.certificate === undefined) {
throw new Errors.ValidationError(ErrorMessages.CERT_PROPERTY_REQUIRED);
}

let registryCreate = {
url: registry.url,
username: registry.username,
password: registry.password,
isPublic: registry.isPublic,
userEmail: registry.email,
requiresCert: registry.requiresCert,
certificate: registry.certificate,
userId: user.id
};

registryCreate = AppHelper.deleteUndefinedFields(registryCreate);

await RegistryManager.create(registryCreate, transaction)
await updateChangeTracking(user, transaction);
};
Expand Down Expand Up @@ -73,7 +85,7 @@ const deleteRegistry = async function (registryData, user, isCli, transaction) {
: {id: registryData.id, userId: user.id};
const registry = await RegistryManager.findOne(queryData, transaction);
if (!registry) {
throw new Errors.NotFoundError('Invalid Registry Id');
throw new Errors.NotFoundError(AppHelper.formatMessage(ErrorMessages.INVALID_REGISTRY_ID, registryData.id));
}
if (isCli) {
user = {id: registry.userId};
Expand Down