oa-jira
Version:
Octet Agile's JIRA connectivity project.
35 lines (30 loc) • 1.13 kB
JavaScript
const jira = require('../../jira');
const categoryServices = require('./categories.services');
const Status = require('../classes/status.class');
exports.create = ({ id, description, iconUrl, name, category } = {}) => {
return Status.create({ id, description, iconUrl, name, category });
};
exports.resolve = status => Status.resolve(status);
exports.getById = ({ connection, id, cache }) => {
if (cache.statuses.has(id)) return cache.statuses.get(id);
return jira
.getStatusById(connection, id)
.then(data => {
if (!data) return Promise.resolve();
return categoryServices
.create(data.statusCategory)
.then(category => cache.categories.set(category.getId(), category))
.then(category =>
Status.create({
id: data.id,
description: data.description,
iconUrl: data.iconUrl,
name: data.name,
category
})
)
.catch(error => Promise.reject(error));
})
.then(status => cache.statuses.set(id, status))
.catch(error => Promise.reject(error));
};