add user group collection repository
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
import { UmbUserGroupCollectionFilterModel } from '../../types.js';
|
||||
import { UmbUserGroupCollectionServerDataSource } from '../sources/user-group-collection.server.data.js';
|
||||
import { UMB_USER_GROUP_STORE_CONTEXT_TOKEN, UmbUserGroupStore } from '../user-group.store.js';
|
||||
import { UserGroupResponseModel } from '@umbraco-cms/backoffice/backend-api';
|
||||
import { UmbCollectionDataSource, UmbCollectionRepository } from '@umbraco-cms/backoffice/repository';
|
||||
import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api';
|
||||
import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api';
|
||||
|
||||
// TODO: implement
|
||||
export class UmbUserGroupRepository implements UmbCollectionRepository {
|
||||
#host: UmbControllerHostElement;
|
||||
#init;
|
||||
|
||||
#detailStore?: UmbUserGroupStore;
|
||||
#collectionSource: UmbCollectionDataSource<UserGroupResponseModel>;
|
||||
|
||||
constructor(host: UmbControllerHostElement) {
|
||||
this.#host = host;
|
||||
this.#collectionSource = new UmbUserGroupCollectionServerDataSource(this.#host);
|
||||
|
||||
this.#init = Promise.all([
|
||||
new UmbContextConsumerController(this.#host, UMB_USER_GROUP_STORE_CONTEXT_TOKEN, (instance) => {
|
||||
this.#detailStore = instance;
|
||||
}).asPromise(),
|
||||
]);
|
||||
}
|
||||
|
||||
async requestCollection(filter: UmbUserGroupCollectionFilterModel = { skip: 0, take: 100 }) {
|
||||
await this.#init;
|
||||
|
||||
const { data, error } = await this.#collectionSource.filterCollection(filter);
|
||||
|
||||
return { data, error, asObservable: () => this.#detailStore!.all() };
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user