UNPKG

@directus/api

Version:

Directus is a real-time API and App dashboard for managing SQL database content

65 lines (63 loc) 3.46 kB
import { ItemsService } from "../services/items.js"; import { FilesService } from "../services/files.js"; import { FoldersService } from "../services/folders.js"; import { AccessService } from "../services/access.js"; import { ActivityService } from "../services/activity.js"; import { FlowsService } from "../services/flows.js"; import { RevisionsService } from "../services/revisions.js"; import { SettingsService } from "../services/settings.js"; import { UsersService } from "../services/users.js"; import { NotificationsService } from "../services/notifications.js"; import { CommentsService } from "../services/comments.js"; import { DashboardsService } from "../services/dashboards.js"; import { DeploymentProjectsService } from "../services/deployment-projects.js"; import { DeploymentRunsService } from "../services/deployment-runs.js"; import { DeploymentService } from "../services/deployment.js"; import { PresetsService } from "../services/presets.js"; import { RolesService } from "../services/roles.js"; import { OperationsService } from "../services/operations.js"; import { PanelsService } from "../services/panels.js"; import { PermissionsService } from "../services/permissions.js"; import { PoliciesService } from "../services/policies.js"; import { SharesService } from "../services/shares.js"; import { TranslationsService } from "../services/translations.js"; import { VersionsService } from "../services/versions.js"; import "../services/index.js"; import { ForbiddenError } from "@directus/errors"; //#region src/utils/get-service.ts /** * Select the correct service for the given collection. This allows the individual services to run * their custom checks (f.e. it allows `UsersService` to prevent updating TFA secret from outside). */ function getService(collection, opts) { switch (collection) { case "directus_access": return new AccessService(opts); case "directus_activity": return new ActivityService(opts); case "directus_comments": return new CommentsService(opts); case "directus_dashboards": return new DashboardsService(opts); case "directus_files": return new FilesService(opts); case "directus_flows": return new FlowsService(opts); case "directus_folders": return new FoldersService(opts); case "directus_notifications": return new NotificationsService(opts); case "directus_operations": return new OperationsService(opts); case "directus_panels": return new PanelsService(opts); case "directus_permissions": return new PermissionsService(opts); case "directus_presets": return new PresetsService(opts); case "directus_policies": return new PoliciesService(opts); case "directus_revisions": return new RevisionsService(opts); case "directus_roles": return new RolesService(opts); case "directus_settings": return new SettingsService(opts); case "directus_shares": return new SharesService(opts); case "directus_translations": return new TranslationsService(opts); case "directus_users": return new UsersService(opts); case "directus_versions": return new VersionsService(opts); case "directus_deployments": return new DeploymentService(opts); case "directus_deployment_projects": return new DeploymentProjectsService(opts); case "directus_deployment_runs": return new DeploymentRunsService(opts); default: if (collection.startsWith("directus_")) throw new ForbiddenError(); return new ItemsService(collection, opts); } } //#endregion export { getService };