UNPKG

@mrako/tscli

Version:
63 lines (62 loc) 2.92 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createWorktime = exports.listPhases = void 0; const dayjs_1 = __importDefault(require("dayjs")); const jsonpath_1 = __importDefault(require("jsonpath")); const api_1 = require("./api"); const getCurrentPhases = () => __awaiter(void 0, void 0, void 0, function* () { const projects = yield (0, api_1.get)('projects?active=true&userHasAccess=true'); const favorites = yield (0, api_1.get)('preferences/favoritePhases'); const currentPhases = jsonpath_1.default.query(projects, `$..phases[?(${favorites.favoritePhases.map((p) => `@.id == ${p}`).join('||')})]`); /* const currentProjects = projects.filter((project) => { return project.phases.find(phase => favorites.favoritePhases.includes(phase.id)); }); */ return currentPhases; }); const getDefaultTaskFor = (phaseId) => __awaiter(void 0, void 0, void 0, function* () { const projects = yield (0, api_1.get)('projects?active=true&userHasAccess=true'); const defaultTasks = jsonpath_1.default.query(projects, `$..phases[?(@.id==${phaseId})].tasks[?(@.name=='No task')]`); if (defaultTasks && defaultTasks.length > 0) { return defaultTasks[0]; } return {}; }); const listPhases = () => __awaiter(void 0, void 0, void 0, function* () { const phases = yield getCurrentPhases(); phases.map((p) => { console.log(`${p.id.toString().padEnd(10)}${p.name}`); }); }); exports.listPhases = listPhases; const createWorktime = (argv) => __awaiter(void 0, void 0, void 0, function* () { const task = yield getDefaultTaskFor(argv.id); const date = argv.date || (0, dayjs_1.default)().format('YYYY-MM-DD'); try { if (date && task.id) { const worktime = yield (0, api_1.post)('worktimes', { date, taskId: task.id, duration: argv.duration.toString(), description: argv.description, }); } } catch (err) { console.log(err); } }); exports.createWorktime = createWorktime;