init repository

This commit is contained in:
Jesper Møller Jensen
2023-05-03 21:48:09 +12:00
parent 88e1bf304b
commit 61df6c596b
2 changed files with 45 additions and 5 deletions

View File

@@ -1,11 +1,40 @@
import { Observable } from 'rxjs';
import { UserGroupBaseModel } from '@umbraco-cms/backoffice/backend-api';
import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller';
import {
UmbCollectionRepository,
UmbDetailRepository,
UmbRepositoryErrorResponse,
UmbRepositoryResponse,
} from '@umbraco-cms/backoffice/repository';
// TODO: implement
export class UmbUserGroupRepository {
export class UmbUserGroupRepository implements UmbDetailRepository<UserGroupBaseModel>, UmbCollectionRepository {
#host: UmbControllerHostElement;
constructor(host: UmbControllerHostElement) {
this.#host = host;
console.log(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.');
}
byId(id: string): Promise<Observable<any>> {
throw new Error('Method not implemented.');
}
create(data: any): Promise<UmbRepositoryResponse<any>> {
throw new Error('Method not implemented.');
}
save(id: string, data: any): Promise<UmbRepositoryErrorResponse> {
throw new Error('Method not implemented.');
}
delete(id: string): Promise<UmbRepositoryErrorResponse> {
throw new Error('Method not implemented.');
}
requestCollection(filter?: any): Promise<any> {
throw new Error('Method not implemented.');
}
}

View File

@@ -11,6 +11,20 @@ export class UmbUserGroupWorkspaceContext
#data = new UmbObjectState<UserGroupBaseModel | undefined>(undefined);
data = this.#data.asObservable();
constructor(host: UmbControllerHostElement) {
super(host, new UmbUserGroupRepository(host));
}
async load(id: string) {
console.log('load');
const { data } = await this.repository.requestById(id);
if (data) {
this.setIsNew(false);
this.#data.update(data);
}
}
getEntityId(): string | undefined {
throw new Error('Method not implemented.');
}
@@ -26,9 +40,6 @@ export class UmbUserGroupWorkspaceContext
destroy(): void {
throw new Error('Method not implemented.');
}
constructor(host: UmbControllerHostElement) {
super(host, new UmbUserGroupRepository(host));
}
updateProperty<Alias extends keyof UserGroupBaseModel>(alias: Alias, value: UserGroupBaseModel[Alias]) {
this.#data.update({ [alias]: value });