Browse Source

Refactoring

pull/7146/head
Thomas Kaul 3 weeks ago
parent
commit
d3cce8977c
  1. 14
      apps/api/src/app/access/access.controller.ts
  2. 7
      apps/api/src/app/access/access.service.ts
  3. 13
      apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts

14
apps/api/src/app/access/access.controller.ts

@ -21,7 +21,7 @@ import {
} from '@nestjs/common';
import { REQUEST } from '@nestjs/core';
import { AuthGuard } from '@nestjs/passport';
import { Access as AccessModel, Prisma } from '@prisma/client';
import { Access as AccessModel } from '@prisma/client';
import { StatusCodes, getReasonPhrase } from 'http-status-codes';
import { AccessService } from './access.service';
@ -87,17 +87,13 @@ export class AccessController {
}
try {
const settings: AccessSettings = data.filters?.length
? { filters: data.filters }
: {};
return this.accessService.createAccess({
alias: data.alias || undefined,
granteeUser: data.granteeUserId
? { connect: { id: data.granteeUserId } }
: undefined,
permissions: data.permissions,
settings: settings as Prisma.InputJsonValue,
settings: this.accessService.buildSettings(data.filters),
user: { connect: { id: this.request.user.id } }
});
} catch {
@ -159,10 +155,6 @@ export class AccessController {
}
try {
const settings: AccessSettings = data.filters?.length
? { filters: data.filters }
: {};
return this.accessService.updateAccess({
data: {
alias: data.alias,
@ -170,7 +162,7 @@ export class AccessController {
? { connect: { id: data.granteeUserId } }
: { disconnect: true },
permissions: data.permissions,
settings: settings as Prisma.InputJsonValue
settings: this.accessService.buildSettings(data.filters)
},
where: { id }
});

7
apps/api/src/app/access/access.service.ts

@ -1,4 +1,5 @@
import { PrismaService } from '@ghostfolio/api/services/prisma/prisma.service';
import { AccessSettings, Filter } from '@ghostfolio/common/interfaces';
import { AccessWithGranteeUser } from '@ghostfolio/common/types';
import { Injectable } from '@nestjs/common';
@ -39,6 +40,12 @@ export class AccessService {
});
}
public buildSettings(filters?: Filter[]) {
const settings: AccessSettings = filters?.length ? { filters } : {};
return settings as Prisma.InputJsonValue;
}
public async createAccess(data: Prisma.AccessCreateInput): Promise<Access> {
return this.prismaService.access.create({
data

13
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts

@ -25,7 +25,6 @@ import {
} from '@angular/core';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import {
AbstractControl,
FormBuilder,
FormGroup,
FormsModule,
@ -143,9 +142,7 @@ export class GfCreateOrUpdateAccessDialogComponent implements OnInit {
const permissionsControl = this.accessForm.get('permissions');
if (accessType === 'PRIVATE') {
granteeUserIdControl?.setValidators([
(control: AbstractControl) => Validators.required(control)
]);
granteeUserIdControl?.setValidators(Validators.required);
this.accessForm.get('filters')?.setValue(null);
} else {
granteeUserIdControl?.clearValidators();
@ -153,10 +150,6 @@ export class GfCreateOrUpdateAccessDialogComponent implements OnInit {
permissionsControl?.setValue(
access?.permissions[0] ?? AccessPermission.READ_RESTRICTED
);
if (this.canApplyFilters) {
this.loadHoldings();
}
}
granteeUserIdControl?.updateValueAndValidity();
@ -164,9 +157,7 @@ export class GfCreateOrUpdateAccessDialogComponent implements OnInit {
this.changeDetectorRef.markForCheck();
});
if (this.canApplyFilters) {
this.loadHoldings();
}
this.loadHoldings();
}
protected onCancel() {

Loading…
Cancel
Save