UNPKG

@tmlmobilidade/interfaces

Version:

This package provides SDK-style connectors for interacting with databases (e.g., stops, plans, rides, alerts) and external providers (e.g., authentication, storage). It simplifies data access and integration across projects.

42 lines (41 loc) 1.21 kB
/* * */ import { MongoCollectionClass } from '../../common/mongo-collection.js'; import { CreateRouteSchema, UpdateRouteSchema } from '@tmlmobilidade/types'; import { asyncSingletonProxy } from '@tmlmobilidade/utils'; /* * */ class RoutesClass extends MongoCollectionClass { static _instance; createSchema = CreateRouteSchema; updateSchema = UpdateRouteSchema; constructor() { super(); } static async getInstance() { if (!RoutesClass._instance) { const instance = new RoutesClass(); await instance.connect(); RoutesClass._instance = instance; } return RoutesClass._instance; } /** * Finds Route documents by line ID. * * @param lineId - The line ID to search for * @returns A promise that resolves to an array of matching documents */ async findByLineId(lineId) { return this.mongoCollection.find({ line_id: lineId }).toArray(); } getCollectionIndexes() { return []; } getCollectionName() { return 'routes'; } getEnvName() { return 'DATABASE_URI'; } } /* * */ export const routes = asyncSingletonProxy(RoutesClass);