@schul-cloud/schul-cloud-resources-api-v1
v1.0.326
Published
The learning resources' api definitions for Schul-Cloud.
Downloads
10
Readme
schul-cloud-resources-api-v1
This module contains the schemas and examples of the api definitions.
You can install this package by running
npm install @schul-cloud/schul-cloud-resources-api-v1
Usage
You can use the module to validate resource attributes:
var api = require("@schul-cloud/schul-cloud-resources-api-v1");
var resource = {
"title": "Test",
"url": "http://example.org"
}
if (api.schemas.resource.isValid(resource)) {
console.log("The resource is valid.")
} else {
api.resource.validate(resource) // create an error message
}
There are valid and invalidexamples which you can use:
var api = require("@schul-cloud/schul-cloud-resources-api-v1");
console.log("Valid examples:", api.schemas.resource.getValidExamples())
console.log("Invalid examples:", api.schemas.resource.getValidExamples())
If you have a look at the schemas folder, you can find all schemas you can use:
var api = require("@schul-cloud/schul-cloud-resources-api-v1");
api.schemas.resource
api.schemas.error
api.schemas.license
api.schemas.search_response
You can list all of them with
api.getSchemaNames()
Each schema
in the api.schemas
has certain attributes and functions:
schema.name
is the name of the schema.schema.getValidExamples()
return a list of valid examples for the schema.schema.getInvalidExamples()
return a list of invalid examples for the schema.schema.isValid(object)
validates the object against the schema and returns true if the schema is valid for this object.schema.getValidationErrors(object)
return a list ofValidationErrors
which explain the problems in the object if it should be valid for the schema.schema.getSchema()
return the raw jsonschema.schema.getId()
return the identifier of the raw schema.
This module uses ajv.
Thus, you can gat the collected schemas also as ajv
object:
api.ajv
Example: Feathers Validation Hook
If you want to validate a resource which has been posted to the [Resource API][api], you can use this code in feathers:
const commonHooks = require('feathers-hooks-common');
const api = require("@schul-cloud/schul-cloud-resources-api-v1");
module.exports = function (options = {}) { // eslint-disable-line no-unused-vars
var schema = api.schemas.resource.getSchema();
return commonHooks.validateSchema(schema, api.ajv);
};
Then, you add the hook to the feathers hook by calling it.
Tests & Development
To run the tests, run the following commands for installation:
npm install -g mocha
npm install chai
You can edit this file on GitHub.
[api]