oa-jira
Version:
Octet Agile's JIRA connectivity project.
26 lines (21 loc) • 1.06 kB
JavaScript
const jira = require('../../jira');
const Version = require('../classes/version.class');
exports.create = ({ id, name, startDate, releaseDate, archived, released, projectId } = {}) => {
return Version.create({ id, name, startDate, releaseDate, archived, released, projectId });
};
exports.resolve = version => Version.resolve(version);
const format = ({ id, name, startDate, releaseDate, archived, released, projectId }) => {
const json = { id, name, archived, released, projectId };
if (releaseDate) json.releaseDate = new Date(releaseDate);
if (startDate) json.startDate = new Date(startDate);
return Promise.resolve(json);
};
exports.getById = ({ connection, id, cache }) => {
if (cache.versions.has(id)) return cache.versions.get(id);
return jira
.getVersionById(connection, id)
.then(data => (data ? format(data) : Promise.resolve()))
.then(data => (data ? Version.create(data) : Promise.resolve()))
.then(version => cache.versions.set(id, version))
.catch(error => Promise.reject(error));
};