init sources
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
import { UmbUserGroupDetailDataSource } from '../../types';
|
||||
import { DataSourceResponse } from '@umbraco-cms/backoffice/repository';
|
||||
import {
|
||||
CreateUserRequestModel,
|
||||
UpdateUserRequestModel,
|
||||
UserPresentationBaseModel,
|
||||
UserResource,
|
||||
InviteUserRequestModel,
|
||||
EnableUserRequestModel,
|
||||
DisableUserRequestModel,
|
||||
UserGroupBaseModel,
|
||||
UserGroupResource,
|
||||
} from '@umbraco-cms/backoffice/backend-api';
|
||||
import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller';
|
||||
import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources';
|
||||
|
||||
/**
|
||||
* A data source for the User that fetches data from the server
|
||||
* @export
|
||||
* @class UmbUserGroupServerDataSource
|
||||
* @implements {RepositoryDetailDataSource}
|
||||
*/
|
||||
export class UmbUserGroupServerDataSource implements UmbUserGroupDetailDataSource {
|
||||
#host: UmbControllerHostElement;
|
||||
|
||||
/**
|
||||
* Creates an instance of UmbUserGroupServerDataSource.
|
||||
* @param {UmbControllerHostElement} host
|
||||
* @memberof UmbUserGroupServerDataSource
|
||||
*/
|
||||
constructor(host: UmbControllerHostElement) {
|
||||
this.#host = host;
|
||||
}
|
||||
createScaffold(parentId: string | null): Promise<DataSourceResponse<UserGroupBaseModel>> {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
get(id: string): Promise<DataSourceResponse<UserGroupBaseModel>> {
|
||||
if (!id) throw new Error('Id is missing');
|
||||
return tryExecuteAndNotify(this.#host, UserGroupResource.getUserGroupById({ id }));
|
||||
}
|
||||
insert(data: UserGroupBaseModel): Promise<DataSourceResponse<void>> {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
update(unique: string, data: UserGroupBaseModel): Promise<DataSourceResponse<UserGroupBaseModel>> {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
delete(unique: string): Promise<DataSourceResponse<undefined>> {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,6 @@
|
||||
import { Observable } from 'rxjs';
|
||||
import { UmbUserGroupDetailDataSource } from '../types';
|
||||
import { UmbUserGroupServerDataSource } from './sources/user-group.server.data';
|
||||
import { UserGroupBaseModel } from '@umbraco-cms/backoffice/backend-api';
|
||||
import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller';
|
||||
import {
|
||||
@@ -12,16 +14,27 @@ import {
|
||||
export class UmbUserGroupRepository implements UmbDetailRepository<UserGroupBaseModel>, UmbCollectionRepository {
|
||||
#host: UmbControllerHostElement;
|
||||
|
||||
#detailSource: UmbUserGroupDetailDataSource;
|
||||
|
||||
constructor(host: UmbControllerHostElement) {
|
||||
this.#host = host;
|
||||
this.#detailSource = new UmbUserGroupServerDataSource(this.#host);
|
||||
}
|
||||
|
||||
createScaffold(parentId: string | null): Promise<UmbRepositoryResponse<any>> {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
requestById(id: string): Promise<UmbRepositoryResponse<any>> {
|
||||
throw new Error('Method not implemented.');
|
||||
|
||||
async requestById(id: string) {
|
||||
if (!id) throw new Error('Id is missing');
|
||||
|
||||
const { data, error } = await this.#detailSource.get(id);
|
||||
|
||||
//TODO Put it in the store
|
||||
|
||||
return { data, error };
|
||||
}
|
||||
|
||||
byId(id: string): Promise<Observable<any>> {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
import {
|
||||
SaveUserGroupRequestModel,
|
||||
UpdateUserGroupRequestModel,
|
||||
UserGroupBaseModel,
|
||||
} from '@umbraco-cms/backoffice/backend-api';
|
||||
import type { UmbEntityBase } from '@umbraco-cms/backoffice/models';
|
||||
import { UmbDataSource } from '@umbraco-cms/backoffice/repository';
|
||||
|
||||
export interface UserGroupEntity extends UmbEntityBase {
|
||||
type: 'user-group';
|
||||
@@ -11,3 +17,10 @@ export interface UserGroupDetails extends UserGroupEntity {
|
||||
mediaStartNode?: string;
|
||||
permissions: Array<string>;
|
||||
}
|
||||
|
||||
export type UmbUserGroupDetailDataSource = UmbDataSource<
|
||||
SaveUserGroupRequestModel,
|
||||
void,
|
||||
UpdateUserGroupRequestModel,
|
||||
UserGroupBaseModel
|
||||
>;
|
||||
|
||||
Reference in New Issue
Block a user