directus

Форк
0
/
get-service.ts 
73 строки · 2.1 Кб
1
import { ForbiddenError } from '@directus/errors';
2
import {
3
	ActivityService,
4
	DashboardsService,
5
	FilesService,
6
	FlowsService,
7
	FoldersService,
8
	ItemsService,
9
	NotificationsService,
10
	OperationsService,
11
	PanelsService,
12
	PermissionsService,
13
	PresetsService,
14
	RevisionsService,
15
	RolesService,
16
	SettingsService,
17
	SharesService,
18
	TranslationsService,
19
	UsersService,
20
	VersionsService,
21
	WebhooksService,
22
} from '../services/index.js';
23
import type { AbstractServiceOptions } from '../types/services.js';
24

25
/**
26
 * Select the correct service for the given collection. This allows the individual services to run
27
 * their custom checks (f.e. it allows `UsersService` to prevent updating TFA secret from outside).
28
 */
29
export function getService(collection: string, opts: AbstractServiceOptions): ItemsService {
30
	switch (collection) {
31
		case 'directus_activity':
32
			return new ActivityService(opts);
33
		case 'directus_dashboards':
34
			return new DashboardsService(opts);
35
		case 'directus_files':
36
			return new FilesService(opts);
37
		case 'directus_flows':
38
			return new FlowsService(opts);
39
		case 'directus_folders':
40
			return new FoldersService(opts);
41
		case 'directus_notifications':
42
			return new NotificationsService(opts);
43
		case 'directus_operations':
44
			return new OperationsService(opts);
45
		case 'directus_panels':
46
			return new PanelsService(opts);
47
		case 'directus_permissions':
48
			return new PermissionsService(opts);
49
		case 'directus_presets':
50
			return new PresetsService(opts);
51
		case 'directus_revisions':
52
			return new RevisionsService(opts);
53
		case 'directus_roles':
54
			return new RolesService(opts);
55
		case 'directus_settings':
56
			return new SettingsService(opts);
57
		case 'directus_shares':
58
			return new SharesService(opts);
59
		case 'directus_translations':
60
			return new TranslationsService(opts);
61
		case 'directus_users':
62
			return new UsersService(opts);
63
		case 'directus_versions':
64
			return new VersionsService(opts);
65
		case 'directus_webhooks':
66
			return new WebhooksService(opts);
67
		default:
68
			// Deny usage of other system collections via ItemsService
69
			if (collection.startsWith('directus_')) throw new ForbiddenError();
70

71
			return new ItemsService(collection, opts);
72
	}
73
}
74

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.