oa-jira
Version:
Octet Agile's JIRA connectivity project.
23 lines (18 loc) • 795 B
JavaScript
const jira = require('../../jira');
const Project = require('../classes/project.class');
exports.create = ({ id, key, name, type } = {}) => {
return Project.create({ id, key, name, type });
};
exports.resolve = project => Project.resolve(project);
const format = ({ id, key, name, projectTypeKey }) => {
return Promise.resolve({ id, key, name, type: projectTypeKey });
};
exports.getById = ({ connection, id, cache }) => {
if (cache.projects.has(id)) return cache.projects.get(id);
return jira
.getProjectById(connection, id)
.then(data => (data ? format(data) : Promise.resolve()))
.then(data => (data ? Project.create(data) : Promise.resolve()))
.then(project => cache.projects.set(id, project))
.catch(error => Promise.reject(error));
};