58 lines
1.5 KiB
JavaScript
58 lines
1.5 KiB
JavaScript
|
const md5 = require('md5');
|
||
|
|
||
|
module.exports = function(Self) {
|
||
|
Self.setup = function() {
|
||
|
Self.super_.setup.call(this);
|
||
|
|
||
|
this.remoteMethod('allowedContentTypes', {
|
||
|
description: 'Returns a list of allowed contentTypes',
|
||
|
accessType: 'READ',
|
||
|
returns: {
|
||
|
type: ['Object'],
|
||
|
root: true
|
||
|
},
|
||
|
http: {
|
||
|
path: `/allowedContentTypes`,
|
||
|
verb: 'GET'
|
||
|
}
|
||
|
});
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* Returns a container instance
|
||
|
* If doesn't exists creates a new one
|
||
|
*
|
||
|
* @param {String} name Container name
|
||
|
* @return {Object} Container instance
|
||
|
*/
|
||
|
Self.container = async function(name) {
|
||
|
const models = Self.app.models;
|
||
|
let container;
|
||
|
try {
|
||
|
container = await models[this.modelName].getContainer(name);
|
||
|
} catch (err) {
|
||
|
if (err.code === 'ENOENT') {
|
||
|
container = await models[this.modelName].createContainer({
|
||
|
name: name
|
||
|
});
|
||
|
} else throw err;
|
||
|
}
|
||
|
|
||
|
return container;
|
||
|
};
|
||
|
|
||
|
Self.getHash = function(id) {
|
||
|
return md5(id.toString()).substring(0, 3);
|
||
|
};
|
||
|
|
||
|
Self.getFileExtension = function(fileName) {
|
||
|
return fileName.split('.').pop().toLowerCase();
|
||
|
};
|
||
|
|
||
|
Self.allowedContentTypes = async function() {
|
||
|
const connector = this.dataSource.connector;
|
||
|
const allowedContentTypes = connector.allowedContentTypes;
|
||
|
return allowedContentTypes;
|
||
|
};
|
||
|
};
|