@omegabigdata/honoplay-api-helper-node
Version:
132 lines (119 loc) • 3.13 kB
JavaScript
;
const { axiosClient } = require('./Helpers');
/**
* @param {object} tagModel - tag Model for Post
* @param {!string} tag.name
* @param {!boolean} tag.toQuestion
* @param {function} successCallback
* @param {function} errorCallback
*/
const postTag = (tagModel, successCallback, errorCallback) => {
if (!tagModel) {
if (errorCallback) {
errorCallback('Missing Parameters');
return;
}
throw new Error('Missing Parameters');
}
const uri = `Tag`;
axiosClient
.post(uri, tagModel)
.then(success => successCallback(success))
.catch(error => errorCallback(error));
};
/**
* @param {object} tagModel - tag Modelfor Update
* @param {!number} tagModel.id - tag id
* @param {!string} tagModel.name - tag name
* @param {!boolean} tag.toQuestion
* @param {function} successCallback
* @param {function} errorCallback
*/
const putTag = (tagModel, successCallback, errorCallback) => {
if (!tagModel) {
if (errorCallback) {
errorCallback('Missing Parameters');
return;
}
throw new Error('Missing Parameters');
}
const uri = `Tag`;
axiosClient
.put(uri, tagModel)
.then(success => successCallback(success))
.catch(error => errorCallback(error));
};
/**
* @param {!number} skip
* @param {!number} take
* @param {function} successCallback
* @param {function} errorCallback
*/
const getTags = (skip = null, take = null, successCallback, errorCallback) => {
if (typeof skip !== 'number' || typeof take !== 'number') {
throw new Error('Values must be numeric');
}
if (skip <= -1 && take <= -1) {
throw new Error('Values must be positive');
}
const uri = `Tag?Skip=${skip}&Take=${take}`;
axiosClient
.get(uri)
.then(success => {
successCallback(success);
})
.catch(error => {
errorCallback(error);
});
};
/**
* @param {!number} tagId - tag Id
* @param {function} successCallback
* @param {function} errorCallback
*/
const getTag = (tagId, successCallback, errorCallback) => {
if (!tagId) {
if (errorCallback) {
errorCallback('Missing Parameters');
return;
}
throw new Error('Missing Parameters');
}
const uri = `Tag/${tagId}`;
axiosClient
.get(uri)
.then(success => {
successCallback(success);
})
.catch(error => {
errorCallback(error);
});
};
const getTagByquestionId = (questionId, successCallback, errorCallback) => {
if (questionId == null || questionId == undefined) {
if (errorCallback) {
errorCallback('Missing Parameters');
return;
}
throw new Error('Missing Parameters');
}
if (questionId <= 0) {
throw new Error('Value must be greater than zero');
}
let uri = `question/${questionId}/tag`;
axiosClient
.get(uri)
.then(success => {
successCallback(success);
})
.catch(error => {
errorCallback(error);
});
};
module.exports = {
postTag,
putTag,
getTags,
getTag,
getTagByquestionId
};