e1c-test-tools
Version:
Набор инструментов для тестирования (предварительная версия)
75 lines (74 loc) • 3.59 kB
JavaScript
;
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;