UNPKG

e1c-test-tools

Version:

Набор инструментов для тестирования (предварительная версия)

75 lines (74 loc) 3.59 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var TaskRequestsService_1; Object.defineProperty(exports, "__esModule", { value: true }); exports.TaskRequestsService = void 0; const common_1 = require("@nestjs/common"); const event_emitter_1 = require("@nestjs/event-emitter"); const task_request_status_changed_event_1 = require("./events/task-request.status-changed.event"); let TaskRequestsService = TaskRequestsService_1 = class TaskRequestsService { // eslint-disable-next-line no-unused-vars constructor(eventEmitter) { this.eventEmitter = eventEmitter; this.taskRequests = {}; this.id = 0; } getNewId() { this.id += 1; return (this.id).toString().padStart(TaskRequestsService_1.idLength, '0'); } create(createTaskRequestDto) { const id = this.getNewId(); this.taskRequests[id] = Object.assign(Object.assign({}, createTaskRequestDto), { id, 'status': 'Pending', 'accepted': new Date() }); return id; } update(updateTaskRequestDto) { // eslint-disable-next-line no-undef const updateData = Object.assign({}, updateTaskRequestDto); if (updateData.status === 'Processing') { updateData.started = new Date(); this.eventEmitter.emit('task-request.status-changed', new task_request_status_changed_event_1.TaskRequestStatusChangedEvent(updateTaskRequestDto.id, 'Processing')); } else if (updateData.status === 'Finished') { updateData.finished = new Date(); this.eventEmitter.emit('task-request.status-changed', new task_request_status_changed_event_1.TaskRequestStatusChangedEvent(updateTaskRequestDto.id, 'Finished')); } this.taskRequests[updateTaskRequestDto.id] = Object.assign(Object.assign({}, this.taskRequests[updateTaskRequestDto.id]), updateData); } findOne(id) { return this.taskRequests[id]; } findAll() { return Object.values(this.taskRequests) .filter((taskRequest) => taskRequest.status !== 'Deleted'); } findAllByStatus(status) { return Object.values(this.taskRequests) .filter((taskRequest) => taskRequest.status === status); } getResult(id) { // eslint-disable-next-line prefer-const let { result, status } = this.findOne(id); if (status === 'Deleted') { result = undefined; } return { id, result }; } delete(id) { this.update({ id, 'status': 'Deleted' }); } }; TaskRequestsService.idLength = 10; TaskRequestsService = TaskRequestsService_1 = __decorate([ common_1.Injectable(), __metadata("design:paramtypes", [event_emitter_1.EventEmitter2]) ], TaskRequestsService); exports.TaskRequestsService = TaskRequestsService;