@golemio/pid 2.9.6-dev.1066422609 → 2.9.6-rc.1068273062
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/helpers/RouteTypeEnums.d.ts +0 -2
- package/dist/helpers/RouteTypeEnums.js +1 -31
- package/dist/helpers/RouteTypeEnums.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/ioc/Di.js +0 -6
- package/dist/integration-engine/vehicle-positions/ioc/Di.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.d.ts +0 -3
- package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.js +0 -3
- package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/VPWorker.d.ts +1 -2
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/VPWorker.js +0 -7
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/VPWorker.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/TripsRepository.d.ts +1 -2
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/TripsRepository.js +0 -56
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/TripsRepository.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/interfaces/TripRepositoryInterfaces.d.ts +0 -12
- package/dist/output-gateway/index.js.map +1 -1
- package/docs/implementation_documentation.md +0 -25
- package/docs/openapi-output.yaml +0 -154
- package/package.json +2 -2
- package/db/example/redis/publicVehiclePositionsMock.json +0 -24
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/cache/PublicApiCacheRepository.d.ts +0 -7
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/cache/PublicApiCacheRepository.js +0 -66
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/cache/PublicApiCacheRepository.js.map +0 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/RefreshPublicCacheTask.d.ts +0 -21
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/RefreshPublicCacheTask.js +0 -112
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/RefreshPublicCacheTask.js.map +0 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/PublicApiTripTransformation.d.ts +0 -10
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/PublicApiTripTransformation.js +0 -34
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/PublicApiTripTransformation.js.map +0 -1
- package/dist/output-gateway/public/controllers/v1/IParams.d.ts +0 -7
- package/dist/output-gateway/public/controllers/v1/IParams.js +0 -3
- package/dist/output-gateway/public/controllers/v1/IParams.js.map +0 -1
- package/dist/output-gateway/public/controllers/v1/PublicVehiclePositionsController.d.ts +0 -8
- package/dist/output-gateway/public/controllers/v1/PublicVehiclePositionsController.js +0 -51
- package/dist/output-gateway/public/controllers/v1/PublicVehiclePositionsController.js.map +0 -1
- package/dist/output-gateway/public/data-access/redis/PublicVehiclePositionsRepository.d.ts +0 -13
- package/dist/output-gateway/public/data-access/redis/PublicVehiclePositionsRepository.js +0 -68
- package/dist/output-gateway/public/data-access/redis/PublicVehiclePositionsRepository.js.map +0 -1
- package/dist/output-gateway/public/domain/IBoudingBox.d.ts +0 -15
- package/dist/output-gateway/public/domain/IBoudingBox.js +0 -3
- package/dist/output-gateway/public/domain/IBoudingBox.js.map +0 -1
- package/dist/output-gateway/public/domain/const.d.ts +0 -3
- package/dist/output-gateway/public/domain/const.js +0 -12
- package/dist/output-gateway/public/domain/const.js.map +0 -1
- package/dist/output-gateway/public/domain/repository/IVehiclePositionsRepository.d.ts +0 -6
- package/dist/output-gateway/public/domain/repository/IVehiclePositionsRepository.js +0 -3
- package/dist/output-gateway/public/domain/repository/IVehiclePositionsRepository.js.map +0 -1
- package/dist/output-gateway/public/ioc/Di.d.ts +0 -2
- package/dist/output-gateway/public/ioc/Di.js +0 -38
- package/dist/output-gateway/public/ioc/Di.js.map +0 -1
- package/dist/output-gateway/public/ioc/OgModuleToken.d.ts +0 -6
- package/dist/output-gateway/public/ioc/OgModuleToken.js +0 -10
- package/dist/output-gateway/public/ioc/OgModuleToken.js.map +0 -1
- package/dist/output-gateway/public/routers/v1/PublicRouter.d.ts +0 -11
- package/dist/output-gateway/public/routers/v1/PublicRouter.js +0 -33
- package/dist/output-gateway/public/routers/v1/PublicRouter.js.map +0 -1
- package/dist/output-gateway/public/routers/v1/helpers/CustomTypeValidator.d.ts +0 -5
- package/dist/output-gateway/public/routers/v1/helpers/CustomTypeValidator.js +0 -28
- package/dist/output-gateway/public/routers/v1/helpers/CustomTypeValidator.js.map +0 -1
- package/dist/output-gateway/public/service/VPSubscriber.d.ts +0 -7
- package/dist/output-gateway/public/service/VPSubscriber.js +0 -33
- package/dist/output-gateway/public/service/VPSubscriber.js.map +0 -1
- package/dist/output-gateway/public/service/facade/VehiclePositionsFacade.d.ts +0 -13
- package/dist/output-gateway/public/service/facade/VehiclePositionsFacade.js +0 -42
- package/dist/output-gateway/public/service/facade/VehiclePositionsFacade.js.map +0 -1
- package/dist/output-gateway/public/service/helpers/BoundingBoxHelper.d.ts +0 -5
- package/dist/output-gateway/public/service/helpers/BoundingBoxHelper.js +0 -22
- package/dist/output-gateway/public/service/helpers/BoundingBoxHelper.js.map +0 -1
- package/dist/output-gateway/public/service/transformations/PublicVehiclePositionsTransformation.d.ts +0 -7
- package/dist/output-gateway/public/service/transformations/PublicVehiclePositionsTransformation.js +0 -18
- package/dist/output-gateway/public/service/transformations/PublicVehiclePositionsTransformation.js.map +0 -1
- package/dist/schema-definitions/vehicle-positions/redis/const.d.ts +0 -1
- package/dist/schema-definitions/vehicle-positions/redis/const.js +0 -5
- package/dist/schema-definitions/vehicle-positions/redis/const.js.map +0 -1
- package/dist/schema-definitions/vehicle-positions/redis/interfaces/IPublicApiCacheDto.d.ts +0 -12
- package/dist/schema-definitions/vehicle-positions/redis/interfaces/IPublicApiCacheDto.js +0 -3
- package/dist/schema-definitions/vehicle-positions/redis/interfaces/IPublicApiCacheDto.js.map +0 -1
- package/dist/schema-definitions/vehicle-positions/redis/schemas/PublicApiCacheDtoSchema.d.ts +0 -4
- package/dist/schema-definitions/vehicle-positions/redis/schemas/PublicApiCacheDtoSchema.js +0 -85
- package/dist/schema-definitions/vehicle-positions/redis/schemas/PublicApiCacheDtoSchema.js.map +0 -1
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
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;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
12
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
13
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
14
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
15
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
16
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
17
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
18
|
-
});
|
|
19
|
-
};
|
|
20
|
-
var PublicApiCacheRepository_1;
|
|
21
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.PublicApiCacheRepository = void 0;
|
|
23
|
-
const const_1 = require("../../../../../../schema-definitions/vehicle-positions/redis/const");
|
|
24
|
-
const PublicApiCacheDtoSchema_1 = require("../../../../../../schema-definitions/vehicle-positions/redis/schemas/PublicApiCacheDtoSchema");
|
|
25
|
-
const RedisModel_1 = require("@golemio/core/dist/integration-engine/models/RedisModel");
|
|
26
|
-
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
27
|
-
const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
|
|
28
|
-
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
29
|
-
const node_crypto_1 = require("node:crypto");
|
|
30
|
-
let PublicApiCacheRepository = exports.PublicApiCacheRepository = PublicApiCacheRepository_1 = class PublicApiCacheRepository extends RedisModel_1.RedisModel {
|
|
31
|
-
constructor() {
|
|
32
|
-
super("PublicApiCacheRepository", {
|
|
33
|
-
isKeyConstructedFromData: false,
|
|
34
|
-
prefix: PublicApiCacheRepository_1.NAMESPACE_PREFIX,
|
|
35
|
-
}, new golemio_validator_1.JSONSchemaValidator("PublicApiCacheRepository", PublicApiCacheDtoSchema_1.PublicApiCacheDtoSchema));
|
|
36
|
-
}
|
|
37
|
-
geoadd(data) {
|
|
38
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
39
|
-
try {
|
|
40
|
-
yield this.validator.Validate(data);
|
|
41
|
-
}
|
|
42
|
-
catch (err) {
|
|
43
|
-
throw new golemio_errors_1.GeneralError("PublicApiCacheRepository: data validation failed", err);
|
|
44
|
-
}
|
|
45
|
-
try {
|
|
46
|
-
const newSetKey = `${PublicApiCacheRepository_1.NAMESPACE_PREFIX}:${(0, node_crypto_1.randomBytes)(4).toString("hex")}`;
|
|
47
|
-
const pipeline = this.connection.pipeline();
|
|
48
|
-
for (const item of data) {
|
|
49
|
-
pipeline.geoadd(newSetKey, item.lng, item.lat, JSON.stringify(item));
|
|
50
|
-
}
|
|
51
|
-
pipeline.expire(newSetKey, 1 * 60); // 1 minute
|
|
52
|
-
yield pipeline.exec();
|
|
53
|
-
return newSetKey;
|
|
54
|
-
}
|
|
55
|
-
catch (err) {
|
|
56
|
-
throw new golemio_errors_1.GeneralError("PublicApiCacheRepository: geoadd failed", err);
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
PublicApiCacheRepository.NAMESPACE_PREFIX = const_1.PUBLIC_CACHE_NAMESPACE_PREFIX;
|
|
62
|
-
exports.PublicApiCacheRepository = PublicApiCacheRepository = PublicApiCacheRepository_1 = __decorate([
|
|
63
|
-
(0, tsyringe_1.injectable)(),
|
|
64
|
-
__metadata("design:paramtypes", [])
|
|
65
|
-
], PublicApiCacheRepository);
|
|
66
|
-
//# sourceMappingURL=PublicApiCacheRepository.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PublicApiCacheRepository.js","sourceRoot":"","sources":["../../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/cache/PublicApiCacheRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,8FAAmF;AAEnF,0IAAuG;AACvG,wFAAqF;AACrF,6EAAwE;AACxE,mFAAkF;AAClF,iEAAgE;AAChE,6CAA0C;AAGnC,IAAM,wBAAwB,mEAA9B,MAAM,wBAAyB,SAAQ,uBAAU;IAGpD;QACI,KAAK,CACD,0BAA0B,EAC1B;YACI,wBAAwB,EAAE,KAAK;YAC/B,MAAM,EAAE,0BAAwB,CAAC,gBAAgB;SACpD,EACD,IAAI,uCAAmB,CAAC,0BAA0B,EAAE,iDAAuB,CAAC,CAC/E,CAAC;IACN,CAAC;IAEY,MAAM,CAAC,IAA0B;;YAC1C,IAAI;gBACA,MAAM,IAAI,CAAC,SAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aACxC;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,6BAAY,CAAC,kDAAkD,EAAE,GAAG,CAAC,CAAC;aACnF;YAED,IAAI;gBACA,MAAM,SAAS,GAAG,GAAG,0BAAwB,CAAC,gBAAgB,IAAI,IAAA,yBAAW,EAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnG,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;gBAE5C,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;oBACrB,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;iBACxE;gBAED,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW;gBAC/C,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAEtB,OAAO,SAAS,CAAC;aACpB;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,6BAAY,CAAC,yCAAyC,EAAE,GAAG,CAAC,CAAC;aAC1E;QACL,CAAC;KAAA;;AAnCa,yCAAgB,GAAG,qCAA6B,AAAhC,CAAiC;mCADtD,wBAAwB;IADpC,IAAA,qBAAU,GAAE;;GACA,wBAAwB,CAqCpC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { ISimpleConfig } from "@golemio/core/dist/helpers/configuration/ISimpleConfig";
|
|
2
|
-
import { IoRedisConnector } from "@golemio/core/dist/helpers/data-access/redis/IoRedisConnector";
|
|
3
|
-
import { ILogger } from "@golemio/core/dist/helpers/logger";
|
|
4
|
-
import { AbstractEmptyTask } from "@golemio/core/dist/integration-engine/workers";
|
|
5
|
-
import { PublicApiCacheRepository } from "../data-access/cache/PublicApiCacheRepository";
|
|
6
|
-
import { PublicApiTripTransformation } from "../transformations/PublicApiTripTransformation";
|
|
7
|
-
export declare class RefreshPublicCacheTask extends AbstractEmptyTask {
|
|
8
|
-
private logger;
|
|
9
|
-
private redisClient;
|
|
10
|
-
private publicApiCacheRepository;
|
|
11
|
-
private publicApiTripTransformation;
|
|
12
|
-
readonly queueName = "refreshPublicCache";
|
|
13
|
-
readonly queueTtl = 1000;
|
|
14
|
-
private lockTimeout;
|
|
15
|
-
private refreshInterval;
|
|
16
|
-
private tripRepository;
|
|
17
|
-
private redisChannel;
|
|
18
|
-
constructor(config: ISimpleConfig, logger: ILogger, redisClient: IoRedisConnector, publicApiCacheRepository: PublicApiCacheRepository, publicApiTripTransformation: PublicApiTripTransformation);
|
|
19
|
-
protected execute(): Promise<void>;
|
|
20
|
-
private createMutex;
|
|
21
|
-
}
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
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;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
-
};
|
|
14
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
15
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
16
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
17
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
18
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
19
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
20
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
21
|
-
});
|
|
22
|
-
};
|
|
23
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
-
exports.RefreshPublicCacheTask = void 0;
|
|
25
|
-
const VPContainerToken_1 = require("../../../ioc/VPContainerToken");
|
|
26
|
-
const const_1 = require("../../../../../schema-definitions/vehicle-positions/redis/const");
|
|
27
|
-
const IoRedisConnector_1 = require("@golemio/core/dist/helpers/data-access/redis/IoRedisConnector");
|
|
28
|
-
const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
|
|
29
|
-
const integration_engine_1 = require("@golemio/core/dist/integration-engine");
|
|
30
|
-
const pubsub_1 = require("@golemio/core/dist/integration-engine/data-access/pubsub");
|
|
31
|
-
const ioc_1 = require("@golemio/core/dist/integration-engine/ioc");
|
|
32
|
-
const workers_1 = require("@golemio/core/dist/integration-engine/workers");
|
|
33
|
-
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
34
|
-
const redis_semaphore_1 = require("@golemio/core/dist/shared/redis-semaphore");
|
|
35
|
-
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
36
|
-
const promises_1 = require("node:timers/promises");
|
|
37
|
-
const constants_1 = require("../constants");
|
|
38
|
-
const TripsRepository_1 = require("../data-access/TripsRepository");
|
|
39
|
-
const PublicApiCacheRepository_1 = require("../data-access/cache/PublicApiCacheRepository");
|
|
40
|
-
const PublicApiTripTransformation_1 = require("../transformations/PublicApiTripTransformation");
|
|
41
|
-
let RefreshPublicCacheTask = exports.RefreshPublicCacheTask = class RefreshPublicCacheTask extends workers_1.AbstractEmptyTask {
|
|
42
|
-
constructor(config, logger, redisClient, publicApiCacheRepository, publicApiTripTransformation) {
|
|
43
|
-
super(constants_1.WORKER_NAME);
|
|
44
|
-
this.logger = logger;
|
|
45
|
-
this.redisClient = redisClient;
|
|
46
|
-
this.publicApiCacheRepository = publicApiCacheRepository;
|
|
47
|
-
this.publicApiTripTransformation = publicApiTripTransformation;
|
|
48
|
-
this.queueName = "refreshPublicCache";
|
|
49
|
-
this.queueTtl = 1000; // 1s
|
|
50
|
-
this.lockTimeout = config.getValue("old.datasources.pid.vehicle-positions.publicCache.mutexLockTimeout", 3000); // default 3s
|
|
51
|
-
this.refreshInterval = this.lockTimeout * 0.8;
|
|
52
|
-
this.tripRepository = new TripsRepository_1.TripsRepository();
|
|
53
|
-
this.redisChannel = new pubsub_1.RedisPubSubChannel(const_1.PUBLIC_CACHE_NAMESPACE_PREFIX);
|
|
54
|
-
}
|
|
55
|
-
execute() {
|
|
56
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
57
|
-
const startDateTime = new Date();
|
|
58
|
-
const mutex = this.createMutex();
|
|
59
|
-
const lockAcquired = yield mutex.tryAcquire();
|
|
60
|
-
if (!lockAcquired) {
|
|
61
|
-
this.logger.info(`${this.constructor.name}: mutex lock was not acquired`);
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
try {
|
|
65
|
-
const trips = yield this.tripRepository.findAllForPublicCache();
|
|
66
|
-
if (trips.length === 0) {
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
const transformedTrips = this.publicApiTripTransformation.transformArray(trips);
|
|
70
|
-
const newSetKey = yield this.publicApiCacheRepository.geoadd(transformedTrips);
|
|
71
|
-
yield this.redisChannel.publishMessage(newSetKey);
|
|
72
|
-
}
|
|
73
|
-
catch (err) {
|
|
74
|
-
if (err instanceof golemio_errors_1.AbstractGolemioError) {
|
|
75
|
-
throw err;
|
|
76
|
-
}
|
|
77
|
-
throw new golemio_errors_1.GeneralError(`${this.constructor.name}: error while refreshing public cache`, this.constructor.name, err);
|
|
78
|
-
}
|
|
79
|
-
finally {
|
|
80
|
-
yield mutex.release();
|
|
81
|
-
const ellapsedTimeInMs = new Date().getTime() - startDateTime.getTime();
|
|
82
|
-
this.logger.info(`${this.constructor.name}: finished in ${ellapsedTimeInMs}ms`);
|
|
83
|
-
if (ellapsedTimeInMs < this.refreshInterval) {
|
|
84
|
-
yield (0, promises_1.setTimeout)(this.refreshInterval - ellapsedTimeInMs);
|
|
85
|
-
}
|
|
86
|
-
integration_engine_1.QueueManager.sendMessageToExchange(this.queuePrefix, this.queueName, {});
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
createMutex() {
|
|
91
|
-
return new redis_semaphore_1.Mutex(this.redisClient.getConnection(), this.queuePrefix, {
|
|
92
|
-
acquireAttemptsLimit: 1,
|
|
93
|
-
lockTimeout: this.lockTimeout,
|
|
94
|
-
refreshInterval: this.refreshInterval,
|
|
95
|
-
onLockLost: (err) => {
|
|
96
|
-
this.logger.error(err, `${this.constructor.name}: mutex lock was lost`);
|
|
97
|
-
},
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
};
|
|
101
|
-
exports.RefreshPublicCacheTask = RefreshPublicCacheTask = __decorate([
|
|
102
|
-
(0, tsyringe_1.injectable)(),
|
|
103
|
-
__param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.SimpleConfig)),
|
|
104
|
-
__param(1, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
|
|
105
|
-
__param(2, (0, tsyringe_1.inject)(ioc_1.ContainerToken.RedisConnector)),
|
|
106
|
-
__param(3, (0, tsyringe_1.inject)(VPContainerToken_1.VPContainerToken.PublicApiCacheRepository)),
|
|
107
|
-
__param(4, (0, tsyringe_1.inject)(VPContainerToken_1.VPContainerToken.PublicApiTripTransformation)),
|
|
108
|
-
__metadata("design:paramtypes", [Object, Object, IoRedisConnector_1.IoRedisConnector,
|
|
109
|
-
PublicApiCacheRepository_1.PublicApiCacheRepository,
|
|
110
|
-
PublicApiTripTransformation_1.PublicApiTripTransformation])
|
|
111
|
-
], RefreshPublicCacheTask);
|
|
112
|
-
//# sourceMappingURL=RefreshPublicCacheTask.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RefreshPublicCacheTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/RefreshPublicCacheTask.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { IPublicApiCacheDto } from "../../../../../schema-definitions/vehicle-positions/redis/interfaces/IPublicApiCacheDto";
|
|
2
|
-
import { AbstractTransformation } from "@golemio/core/dist/helpers/transformation/AbstractTransformation";
|
|
3
|
-
import { IEnrichedTripForPublicApi } from "../data-access/interfaces/TripRepositoryInterfaces";
|
|
4
|
-
type TransformIn = IEnrichedTripForPublicApi;
|
|
5
|
-
type TransformOut = IPublicApiCacheDto;
|
|
6
|
-
export declare class PublicApiTripTransformation extends AbstractTransformation<TransformIn, TransformOut> {
|
|
7
|
-
name: string;
|
|
8
|
-
protected transformInternal: (data: TransformIn) => TransformOut;
|
|
9
|
-
}
|
|
10
|
-
export {};
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
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;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.PublicApiTripTransformation = void 0;
|
|
10
|
-
const AbstractTransformation_1 = require("@golemio/core/dist/helpers/transformation/AbstractTransformation");
|
|
11
|
-
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
12
|
-
let PublicApiTripTransformation = exports.PublicApiTripTransformation = class PublicApiTripTransformation extends AbstractTransformation_1.AbstractTransformation {
|
|
13
|
-
constructor() {
|
|
14
|
-
super(...arguments);
|
|
15
|
-
this.name = "PublicApiTripTransformation";
|
|
16
|
-
this.transformInternal = (data) => {
|
|
17
|
-
return {
|
|
18
|
-
gtfs_trip_id: data.gtfs_trip_id,
|
|
19
|
-
gtfs_route_type: data.gtfs_route_type,
|
|
20
|
-
gtfs_route_short_name: data.gtfs_route_short_name,
|
|
21
|
-
run_number: data.run_number,
|
|
22
|
-
vehicle_registration_number: data.vehicle_registration_number,
|
|
23
|
-
lat: Number.parseFloat(data.lat),
|
|
24
|
-
lng: Number.parseFloat(data.lng),
|
|
25
|
-
bearing: data.bearing,
|
|
26
|
-
delay: data.delay,
|
|
27
|
-
};
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
exports.PublicApiTripTransformation = PublicApiTripTransformation = __decorate([
|
|
32
|
-
(0, tsyringe_1.injectable)()
|
|
33
|
-
], PublicApiTripTransformation);
|
|
34
|
-
//# sourceMappingURL=PublicApiTripTransformation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PublicApiTripTransformation.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/PublicApiTripTransformation.ts"],"names":[],"mappings":";;;;;;;;;AACA,6GAA0G;AAC1G,iEAAgE;AAOzD,IAAM,2BAA2B,yCAAjC,MAAM,2BAA4B,SAAQ,+CAAiD;IAA3F;;QACI,SAAI,GAAG,6BAA6B,CAAC;QAElC,sBAAiB,GAAG,CAAC,IAAiB,EAAgB,EAAE;YAC9D,OAAO;gBACH,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;gBACjD,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,2BAA2B,EAAE,IAAI,CAAC,2BAA2B;gBAC7D,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;gBAChC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;gBAChC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,KAAK,EAAE,IAAI,CAAC,KAAK;aACpB,CAAC;QACN,CAAC,CAAC;IACN,CAAC;CAAA,CAAA;sCAhBY,2BAA2B;IADvC,IAAA,qBAAU,GAAE;GACA,2BAA2B,CAgBvC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { GTFSRouteTypeEnum } from "../../../../helpers/RouteTypeEnums";
|
|
2
|
-
import { IBoundingBox } from "../../domain/IBoudingBox";
|
|
3
|
-
export interface IParams {
|
|
4
|
-
boundingBox: IBoundingBox;
|
|
5
|
-
routeShortName: string | undefined;
|
|
6
|
-
type: GTFSRouteTypeEnum[] | undefined;
|
|
7
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IParams.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/controllers/v1/IParams.ts"],"names":[],"mappings":""}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { NextFunction, Request, Response } from "@golemio/core/dist/shared/express";
|
|
2
|
-
import { ParsedQs } from "qs";
|
|
3
|
-
import { IParams } from "./IParams";
|
|
4
|
-
export declare class PublicVehiclePositionsController {
|
|
5
|
-
constructor();
|
|
6
|
-
getAll: (req: Request, res: Response, next: NextFunction) => Promise<void>;
|
|
7
|
-
parseParams(query: ParsedQs): IParams;
|
|
8
|
-
}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.PublicVehiclePositionsController = void 0;
|
|
13
|
-
const const_1 = require("../../domain/const");
|
|
14
|
-
const Di_1 = require("../../ioc/Di");
|
|
15
|
-
const OgModuleToken_1 = require("../../ioc/OgModuleToken");
|
|
16
|
-
const RouteTypeEnums_1 = require("../../../../helpers/RouteTypeEnums");
|
|
17
|
-
class PublicVehiclePositionsController {
|
|
18
|
-
constructor() {
|
|
19
|
-
this.getAll = (req, res, next) => __awaiter(this, void 0, void 0, function* () {
|
|
20
|
-
try {
|
|
21
|
-
const facade = Di_1.OgPublicContainer.resolve(OgModuleToken_1.OgModuleToken.PublicVehiclePositionsFacade);
|
|
22
|
-
const params = this.parseParams(req.query);
|
|
23
|
-
const result = yield facade.getAll(params.boundingBox, params.routeShortName, params.type);
|
|
24
|
-
res.json(result);
|
|
25
|
-
}
|
|
26
|
-
catch (err) {
|
|
27
|
-
next(err);
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
parseParams(query) {
|
|
32
|
-
const boundingBox = query.boundingBox ? query.boundingBox.split(",").map((x) => parseFloat(x)) : undefined;
|
|
33
|
-
// format "topLeft.lat,topLeft.lon,bottomRight.lat,bottomRight.lon"
|
|
34
|
-
return {
|
|
35
|
-
boundingBox: {
|
|
36
|
-
topLeftLongitude: boundingBox ? boundingBox[1] : const_1.DEFAULT_BOUDINGBOX.topLeftLongitude,
|
|
37
|
-
topLeftLatitude: boundingBox ? boundingBox[0] : const_1.DEFAULT_BOUDINGBOX.topLeftLatitude,
|
|
38
|
-
bottomRightLongitude: boundingBox ? boundingBox[3] : const_1.DEFAULT_BOUDINGBOX.bottomRightLongitude,
|
|
39
|
-
bottomRightLatitude: boundingBox ? boundingBox[2] : const_1.DEFAULT_BOUDINGBOX.bottomRightLatitude,
|
|
40
|
-
},
|
|
41
|
-
routeShortName: query.routeShortName ? query.routeShortName : undefined,
|
|
42
|
-
type: query.routeType
|
|
43
|
-
? query.routeType instanceof Array
|
|
44
|
-
? query.routeType.map((type) => (0, RouteTypeEnums_1.getGtfsRouteType)(type))
|
|
45
|
-
: [(0, RouteTypeEnums_1.getGtfsRouteType)(query.routeType)]
|
|
46
|
-
: undefined,
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
exports.PublicVehiclePositionsController = PublicVehiclePositionsController;
|
|
51
|
-
//# sourceMappingURL=PublicVehiclePositionsController.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PublicVehiclePositionsController.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/controllers/v1/PublicVehiclePositionsController.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAA6D;AAC7D,qCAAsD;AACtD,2DAA6D;AAK7D,uEAA2D;AAE3D,MAAa,gCAAgC;IACzC;QAEO,WAAM,GAAG,CAAO,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;YACtE,IAAI;gBACA,MAAM,MAAM,GAAG,sBAAiB,CAAC,OAAO,CAA+B,6BAAa,CAAC,4BAA4B,CAAC,CAAC;gBACnH,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC3C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBAE3F,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACpB;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,CAAC;aACb;QACL,CAAC,CAAA,CAAC;IAZa,CAAC;IAcT,WAAW,CAAC,KAAe;QAC9B,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAE,KAAK,CAAC,WAAsB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACvH,mEAAmE;QACnE,OAAO;YACH,WAAW,EAAE;gBACT,gBAAgB,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAAkB,CAAC,gBAAgB;gBACpF,eAAe,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAAkB,CAAC,eAAe;gBAClF,oBAAoB,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAAkB,CAAC,oBAAoB;gBAC5F,mBAAmB,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAAkB,CAAC,mBAAmB;aAC7F;YACD,cAAc,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAE,KAAK,CAAC,cAAyB,CAAC,CAAC,CAAC,SAAS;YACnF,IAAI,EAAE,KAAK,CAAC,SAAS;gBACjB,CAAC,CAAC,KAAK,CAAC,SAAS,YAAY,KAAK;oBAC9B,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,iCAAgB,EAAC,IAAc,CAAC,CAAC;oBACjE,CAAC,CAAC,CAAC,IAAA,iCAAgB,EAAC,KAAK,CAAC,SAAmB,CAAC,CAAC;gBACnD,CAAC,CAAC,SAAS;SAClB,CAAC;IACN,CAAC;CACJ;AAjCD,4EAiCC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { IBoundingBoxWithCenter } from "../../domain/IBoudingBox";
|
|
2
|
-
import { IVehiclePositionsRepository } from "../../domain/repository/IVehiclePositionsRepository";
|
|
3
|
-
import { IPublicApiCacheDto } from "../../../../schema-definitions/vehicle-positions/redis/interfaces/IPublicApiCacheDto";
|
|
4
|
-
import { IoRedisConnector } from "@golemio/core/dist/helpers/data-access/redis/IoRedisConnector";
|
|
5
|
-
import { ILogger } from "@golemio/core/dist/helpers/logger/LoggerProvider";
|
|
6
|
-
export declare class PublicVehiclePositionsRepository implements IVehiclePositionsRepository {
|
|
7
|
-
private redisConnector;
|
|
8
|
-
private log;
|
|
9
|
-
private setName;
|
|
10
|
-
constructor(redisConnector: IoRedisConnector, log: ILogger);
|
|
11
|
-
getAllVehiclePositions(boundingBox: IBoundingBoxWithCenter): Promise<IPublicApiCacheDto[]>;
|
|
12
|
-
setCurrentSetName(name: string): void;
|
|
13
|
-
}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
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;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
-
};
|
|
14
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
15
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
16
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
17
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
18
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
19
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
20
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
21
|
-
});
|
|
22
|
-
};
|
|
23
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
-
exports.PublicVehiclePositionsRepository = void 0;
|
|
25
|
-
const OgModuleToken_1 = require("../../ioc/OgModuleToken");
|
|
26
|
-
const IoRedisConnector_1 = require("@golemio/core/dist/helpers/data-access/redis/IoRedisConnector");
|
|
27
|
-
const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
|
|
28
|
-
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
29
|
-
let PublicVehiclePositionsRepository = exports.PublicVehiclePositionsRepository = class PublicVehiclePositionsRepository {
|
|
30
|
-
constructor(redisConnector, log) {
|
|
31
|
-
this.redisConnector = redisConnector;
|
|
32
|
-
this.log = log;
|
|
33
|
-
this.setName = undefined; // loaded via pub sub
|
|
34
|
-
}
|
|
35
|
-
getAllVehiclePositions(boundingBox) {
|
|
36
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
37
|
-
if (!this.setName) {
|
|
38
|
-
this.log.debug("Empty setName for public vehicle positions api.");
|
|
39
|
-
return [];
|
|
40
|
-
}
|
|
41
|
-
if (!this.redisConnector.isConnected()) {
|
|
42
|
-
yield this.redisConnector.connect();
|
|
43
|
-
}
|
|
44
|
-
const connection = this.redisConnector.getConnection();
|
|
45
|
-
const vehiclePositions = yield connection.geosearch(this.setName, "FROMLONLAT", boundingBox.centerPoint.longitude, boundingBox.centerPoint.latitude, "BYBOX", boundingBox.width, boundingBox.height, "m", "ASC");
|
|
46
|
-
return vehiclePositions.map((el) => {
|
|
47
|
-
try {
|
|
48
|
-
return JSON.parse(el);
|
|
49
|
-
}
|
|
50
|
-
catch (err) {
|
|
51
|
-
this.log.error(err);
|
|
52
|
-
this.log.error(`Cannot parse ${el}`);
|
|
53
|
-
return {};
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
setCurrentSetName(name) {
|
|
59
|
-
this.setName = name;
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
exports.PublicVehiclePositionsRepository = PublicVehiclePositionsRepository = __decorate([
|
|
63
|
-
(0, tsyringe_1.injectable)(),
|
|
64
|
-
__param(0, (0, tsyringe_1.inject)(OgModuleToken_1.OgModuleToken.RedisConnector)),
|
|
65
|
-
__param(1, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
|
|
66
|
-
__metadata("design:paramtypes", [IoRedisConnector_1.IoRedisConnector, Object])
|
|
67
|
-
], PublicVehiclePositionsRepository);
|
|
68
|
-
//# sourceMappingURL=PublicVehiclePositionsRepository.js.map
|
package/dist/output-gateway/public/data-access/redis/PublicVehiclePositionsRepository.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PublicVehiclePositionsRepository.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/data-access/redis/PublicVehiclePositionsRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAEA,2DAA6D;AAE7D,oGAAiG;AACjG,wEAAqE;AAErE,iEAAwE;AAGjE,IAAM,gCAAgC,8CAAtC,MAAM,gCAAgC;IAGzC,YAC0C,cAAwC,EACpD,GAAoB;QADA,mBAAc,GAAd,cAAc,CAAkB;QAC5C,QAAG,GAAH,GAAG,CAAS;QAJ1C,YAAO,GAAuB,SAAS,CAAC,CAAC,qBAAqB;IAKnE,CAAC;IAES,sBAAsB,CAAC,WAAmC;;YACnE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBACf,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;gBAClE,OAAO,EAAE,CAAC;aACb;YAED,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,EAAE;gBACpC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;aACvC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;YACvD,MAAM,gBAAgB,GAAG,MAAM,UAAU,CAAC,SAAS,CAC/C,IAAI,CAAC,OAAO,EACZ,YAAY,EACZ,WAAW,CAAC,WAAW,CAAC,SAAS,EACjC,WAAW,CAAC,WAAW,CAAC,QAAQ,EAChC,OAAO,EACP,WAAW,CAAC,KAAK,EACjB,WAAW,CAAC,MAAM,EAClB,GAAG,EACH,KAAK,CACR,CAAC;YAEF,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;gBAC/B,IAAI;oBACA,OAAO,IAAI,CAAC,KAAK,CAAC,EAAY,CAAC,CAAC;iBACnC;gBAAC,OAAO,GAAG,EAAE;oBACV,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;oBACrC,OAAO,EAAE,CAAC;iBACb;YACL,CAAC,CAAC,CAAC;QACP,CAAC;KAAA;IAEM,iBAAiB,CAAC,IAAY;QACjC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACxB,CAAC;CACJ,CAAA;2CA7CY,gCAAgC;IAD5C,IAAA,qBAAU,GAAE;IAKJ,WAAA,IAAA,iBAAM,EAAC,6BAAa,CAAC,cAAc,CAAC,CAAA;IACpC,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;qCADqC,mCAAgB;GAJzE,gCAAgC,CA6C5C"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export interface IBoundingBox {
|
|
2
|
-
topLeftLongitude: number;
|
|
3
|
-
topLeftLatitude: number;
|
|
4
|
-
bottomRightLongitude: number;
|
|
5
|
-
bottomRightLatitude: number;
|
|
6
|
-
}
|
|
7
|
-
export interface IBoundingBoxWithCenter {
|
|
8
|
-
centerPoint: IPoint;
|
|
9
|
-
width: number;
|
|
10
|
-
height: number;
|
|
11
|
-
}
|
|
12
|
-
export interface IPoint {
|
|
13
|
-
longitude: number;
|
|
14
|
-
latitude: number;
|
|
15
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IBoudingBox.js","sourceRoot":"","sources":["../../../../src/output-gateway/public/domain/IBoudingBox.ts"],"names":[],"mappings":""}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DEFAULT_BOUDINGBOX = exports.APP_NAME = void 0;
|
|
4
|
-
exports.APP_NAME = "vp-litacka-api";
|
|
5
|
-
// currently bb around whole czechia
|
|
6
|
-
exports.DEFAULT_BOUDINGBOX = {
|
|
7
|
-
topLeftLongitude: 12.04,
|
|
8
|
-
topLeftLatitude: 51.05,
|
|
9
|
-
bottomRightLongitude: 19.01,
|
|
10
|
-
bottomRightLatitude: 48.54,
|
|
11
|
-
};
|
|
12
|
-
//# sourceMappingURL=const.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"const.js","sourceRoot":"","sources":["../../../../src/output-gateway/public/domain/const.ts"],"names":[],"mappings":";;;AAEa,QAAA,QAAQ,GAAG,gBAAgB,CAAC;AAEzC,oCAAoC;AACvB,QAAA,kBAAkB,GAAiB;IAC5C,gBAAgB,EAAE,KAAK;IACvB,eAAe,EAAE,KAAK;IACtB,oBAAoB,EAAE,KAAK;IAC3B,mBAAmB,EAAE,KAAK;CAC7B,CAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { IPublicApiCacheDto } from "../../../../schema-definitions/vehicle-positions/redis/interfaces/IPublicApiCacheDto";
|
|
2
|
-
import { IBoundingBoxWithCenter } from "../IBoudingBox";
|
|
3
|
-
export interface IVehiclePositionsRepository {
|
|
4
|
-
getAllVehiclePositions(boundingBox: IBoundingBoxWithCenter): Promise<IPublicApiCacheDto[]>;
|
|
5
|
-
setCurrentSetName(name: string): void;
|
|
6
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IVehiclePositionsRepository.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/domain/repository/IVehiclePositionsRepository.ts"],"names":[],"mappings":""}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OgPublicContainer = void 0;
|
|
4
|
-
const const_1 = require("../../../schema-definitions/vehicle-positions/redis/const");
|
|
5
|
-
const IoRedisConnector_1 = require("@golemio/core/dist/helpers/data-access/redis/IoRedisConnector");
|
|
6
|
-
const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
|
|
7
|
-
const Di_1 = require("@golemio/core/dist/output-gateway/ioc/Di");
|
|
8
|
-
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
9
|
-
const PublicVehiclePositionsRepository_1 = require("../data-access/redis/PublicVehiclePositionsRepository");
|
|
10
|
-
const VPSubscriber_1 = require("../service/VPSubscriber");
|
|
11
|
-
const VehiclePositionsFacade_1 = require("../service/facade/VehiclePositionsFacade");
|
|
12
|
-
const OgModuleToken_1 = require("./OgModuleToken");
|
|
13
|
-
const ogPublicContainer = Di_1.OutputGatewayContainer.createChildContainer();
|
|
14
|
-
exports.OgPublicContainer = ogPublicContainer;
|
|
15
|
-
ogPublicContainer.register(OgModuleToken_1.OgModuleToken.RedisConnector, {
|
|
16
|
-
useFactory: (0, tsyringe_1.instanceCachingFactory)((c) => {
|
|
17
|
-
const config = c.resolve(CoreToken_1.CoreToken.SimpleConfig);
|
|
18
|
-
return new IoRedisConnector_1.IoRedisConnector(config.getValue("env.REDIS_CONN"), c.resolve(CoreToken_1.CoreToken.Logger));
|
|
19
|
-
}),
|
|
20
|
-
});
|
|
21
|
-
ogPublicContainer.registerSingleton(OgModuleToken_1.OgModuleToken.PublicVehiclePositionsRepository, PublicVehiclePositionsRepository_1.PublicVehiclePositionsRepository);
|
|
22
|
-
ogPublicContainer.register(OgModuleToken_1.OgModuleToken.PublicVehiclePositionsFacade, {
|
|
23
|
-
useFactory: (0, tsyringe_1.instanceCachingFactory)((c) => {
|
|
24
|
-
return new VehiclePositionsFacade_1.PublicVehiclePositionsFacade(c.resolve(OgModuleToken_1.OgModuleToken.PublicVehiclePositionsRepository), c.resolve(CoreToken_1.CoreToken.Logger));
|
|
25
|
-
}),
|
|
26
|
-
});
|
|
27
|
-
ogPublicContainer.register(OgModuleToken_1.OgModuleToken.VPSubscriber, {
|
|
28
|
-
useFactory: (0, tsyringe_1.instanceCachingFactory)((c) => {
|
|
29
|
-
const config = c.resolve(CoreToken_1.CoreToken.SimpleConfig);
|
|
30
|
-
const logger = c.resolve(CoreToken_1.CoreToken.Logger);
|
|
31
|
-
return new VPSubscriber_1.VPSubscriber({
|
|
32
|
-
channelName: const_1.PUBLIC_CACHE_NAMESPACE_PREFIX,
|
|
33
|
-
redisConnectionString: config.getValue("env.REDIS_CONN"),
|
|
34
|
-
logger: logger,
|
|
35
|
-
}, c.resolve(OgModuleToken_1.OgModuleToken.PublicVehiclePositionsRepository));
|
|
36
|
-
}),
|
|
37
|
-
});
|
|
38
|
-
//# sourceMappingURL=Di.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../../src/output-gateway/public/ioc/Di.ts"],"names":[],"mappings":";;;AAAA,qFAAmF;AAEnF,oGAAiG;AACjG,wEAAqE;AAErE,iEAAkF;AAClF,iEAA4E;AAC5E,4GAAyG;AAEzG,0DAAuD;AACvD,qFAAwF;AACxF,mDAAgD;AAEhD,MAAM,iBAAiB,GAAG,2BAAsB,CAAC,oBAAoB,EAAE,CAAC;AAqC1C,8CAAiB;AAnC/C,iBAAiB,CAAC,QAAQ,CAAC,6BAAa,CAAC,cAAc,EAAE;IACrD,UAAU,EAAE,IAAA,iCAAsB,EAAC,CAAC,CAAC,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,CAAgB,qBAAS,CAAC,YAAY,CAAC,CAAC;QAEhE,OAAO,IAAI,mCAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,OAAO,CAAU,qBAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IACzG,CAAC,CAAC;CACL,CAAC,CAAC;AAEH,iBAAiB,CAAC,iBAAiB,CAAC,6BAAa,CAAC,gCAAgC,EAAE,mEAAgC,CAAC,CAAC;AAEtH,iBAAiB,CAAC,QAAQ,CAAC,6BAAa,CAAC,4BAA4B,EAAE;IACnE,UAAU,EAAE,IAAA,iCAAsB,EAAC,CAAC,CAAC,EAAE,EAAE;QACrC,OAAO,IAAI,qDAA4B,CACnC,CAAC,CAAC,OAAO,CAA8B,6BAAa,CAAC,gCAAgC,CAAC,EACtF,CAAC,CAAC,OAAO,CAAU,qBAAS,CAAC,MAAM,CAAC,CACvC,CAAC;IACN,CAAC,CAAC;CACL,CAAC,CAAC;AAEH,iBAAiB,CAAC,QAAQ,CAAC,6BAAa,CAAC,YAAY,EAAE;IACnD,UAAU,EAAE,IAAA,iCAAsB,EAAC,CAAC,CAAC,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,CAAgB,qBAAS,CAAC,YAAY,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,CAAU,qBAAS,CAAC,MAAM,CAAC,CAAC;QAEpD,OAAO,IAAI,2BAAY,CACnB;YACI,WAAW,EAAE,qCAA6B;YAC1C,qBAAqB,EAAE,MAAM,CAAC,QAAQ,CAAS,gBAAgB,CAAC;YAChE,MAAM,EAAE,MAAM;SACjB,EACD,CAAC,CAAC,OAAO,CAA8B,6BAAa,CAAC,gCAAgC,CAAC,CACzF,CAAC;IACN,CAAC,CAAC;CACL,CAAC,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OgModuleToken = void 0;
|
|
4
|
-
exports.OgModuleToken = {
|
|
5
|
-
RedisConnector: Symbol(),
|
|
6
|
-
PublicVehiclePositionsRepository: Symbol(),
|
|
7
|
-
PublicVehiclePositionsFacade: Symbol(),
|
|
8
|
-
VPSubscriber: Symbol(),
|
|
9
|
-
};
|
|
10
|
-
//# sourceMappingURL=OgModuleToken.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OgModuleToken.js","sourceRoot":"","sources":["../../../../src/output-gateway/public/ioc/OgModuleToken.ts"],"names":[],"mappings":";;;AAAa,QAAA,aAAa,GAAG;IACzB,cAAc,EAAE,MAAM,EAAE;IACxB,gCAAgC,EAAE,MAAM,EAAE;IAC1C,4BAA4B,EAAE,MAAM,EAAE;IACtC,YAAY,EAAE,MAAM,EAAE;CACzB,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/// <reference types="express" />
|
|
2
|
-
import { Router } from "@golemio/core/dist/shared/express";
|
|
3
|
-
export declare class PublicRouter {
|
|
4
|
-
router: Router;
|
|
5
|
-
private controller;
|
|
6
|
-
private redisSubscriber;
|
|
7
|
-
constructor();
|
|
8
|
-
protected initRoutes(expire?: string | number | undefined): void;
|
|
9
|
-
}
|
|
10
|
-
declare const v1PublicRouter: Router;
|
|
11
|
-
export { v1PublicRouter };
|