@gls_spain/gps-common
v35.16.0
Published
Errors, schemas and documentation for the Parcel Shops project
Readme
@gls_spain/gps-common
Errors, schemas and documentation for the Parcel Shops project.
Install
npm install @gls_spain/gps-commonThis is a @gls_spain private package so you need an npm authentication token to be able to install it.
Also remember to include a .npmrc file at the root of your project so that when you deploy the project to production, the deployment server (or Google App Engine, Heroku, etc) is able to install it.
Use
This package provides error classes, json schemas for route validation and an OpenAPI specification:
const { errors, openApiSpec, schemas } = require('@gls_spain/gps-common');
const { DatabaseNotEmptyError } = errors;
const { loginResponse } = schemas;Errors
Import the errors to have access to individual errors and a list of all the error names:
const { errors } = require('@gls_spain/gps-common');
const { DatabaseNotEmptyError, errorsNames } = errors;
console.log(errorsNames.UserDoesNotExistError);
// UserDoesNotExistErrorJSON Schemas
The provided json schemas are the requests and responses schemas of the API. They can be used for validation and unit testing:
const { schemas } = require('@gls_spain/gps-common');
const { loginResponse } = schemas;
const Ajv = require('ajv');
const validator = Ajv();
validator.addSchema(loginResponse);
const myResponse = {
user: {
_id: '2d34620b-c67d-42ec-853d-2541a964df56',
createdAt: '2019-05-23 09:00:00',
updatedAt: '2019-05-23 09:00:00',
username: 'bob',
deletable: false,
loginEnabled: true,
role: 'superAdmin',
name: 'Super administrator',
emails: [],
phones: [],
},
};
const valid = validator.validate(loginResponse, myResponse); // trueOpenAPI specification
The exported openApiSpec is an OpenAPI specification that can be used to build a documentation. If you need a static HTML version see scripts below.
const { openApiSpec } = require('@gls_spain/gps-common');
console.log(openApiSpec);
/*
{
openapi: '3.0.2'
info: {
title: 'GLS Parcel Shops API',
description: 'This is the API backend for the GLS Parcel Shops project.',
contact: { name: 'GLS Innovation', email: '[email protected]' },
license: { name: 'NO LICENSE', url: 'https://choosealicense.com/no-permission/' },
version: 'v1.0.0',
},
...
}
*/Scripts
This package provides two scripts, one to build a static version of the json schemas and one to build a Redoc HTML with the OpenAPI documentation.
build-gps-json-schemas --output=build/gls-schemasbuild-gps-documentation --output=build/gls-documentation.html