"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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.HttpGtfsTripDataFixer = void 0;
const VPContainerToken_1 = require("../../../../../ioc/VPContainerToken");
const queueprocessors_1 = require("@golemio/core/dist/integration-engine/queueprocessors");
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
const TripsRepository_1 = require("../../../data-access/TripsRepository");
const ProviderSourceTypeEnum_1 = require("../../ProviderSourceTypeEnum");
const AbstractGtfsTripDataFixer_1 = require("./AbstractGtfsTripDataFixer");
let HttpGtfsTripDataFixer = class HttpGtfsTripDataFixer extends AbstractGtfsTripDataFixer_1.AbstractGtfsTripDataFixer {
    constructor(tripRepository) {
        super();
        this.tripRepository = tripRepository;
    }
    async fix(queuePrefix) {
        const trips = await this.tripRepository.getTripsWithInvalidGtfsTripId(ProviderSourceTypeEnum_1.ProviderSourceTypeEnum.Http);
        if (trips.length === 0) {
            return 0;
        }
        queueprocessors_1.QueueManager.sendMessageToExchange(queuePrefix, "updateGTFSTripId", this.mapTripsToQueueMessage(trips));
        return trips.length;
    }
    mapTripsToQueueMessage(trips) {
        return {
            trips,
            positions: [],
        };
    }
};
exports.HttpGtfsTripDataFixer = HttpGtfsTripDataFixer;
exports.HttpGtfsTripDataFixer = HttpGtfsTripDataFixer = __decorate([
    (0, tsyringe_1.injectable)(),
    __param(0, (0, tsyringe_1.inject)(VPContainerToken_1.VPContainerToken.TripRepository)),
    __metadata("design:paramtypes", [TripsRepository_1.TripsRepository])
], HttpGtfsTripDataFixer);
//# sourceMappingURL=HttpGtfsTripDataFixer.js.map