28 lines
969 B
JavaScript
28 lines
969 B
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.StopCrawlCommand = void 0;
|
|
const Result_1 = require("../../../../shared/domain/Result");
|
|
const UniqueId_1 = require("../../../../shared/domain/UniqueId");
|
|
class StopCrawlCommand {
|
|
constructor(repository, eventBus) {
|
|
this.repository = repository;
|
|
this.eventBus = eventBus;
|
|
}
|
|
async execute(request) {
|
|
const id = UniqueId_1.UniqueId.from(request.sessionId);
|
|
const session = await this.repository.findById(id);
|
|
if (!session) {
|
|
return (0, Result_1.Err)('Session not found');
|
|
}
|
|
session.stop();
|
|
await this.repository.update(session);
|
|
const events = session.domainEvents;
|
|
for (const event of events) {
|
|
await this.eventBus.publish(event);
|
|
}
|
|
session.clearEvents();
|
|
return (0, Result_1.Ok)(undefined);
|
|
}
|
|
}
|
|
exports.StopCrawlCommand = StopCrawlCommand;
|