Browse Source

Fixe requests

pull/1922/head
Fabio Azevedo (CTW) 2 years ago
parent
commit
6898112b74
  1. 2
      apps/api/src/app/app.module.ts
  2. 6
      apps/api/src/app/platform/create-platform.dto.ts
  3. 4
      apps/api/src/app/platform/platform.controller.ts
  4. 8
      apps/api/src/app/platform/platform.service.ts
  5. 5
      apps/api/src/app/platform/update-platform.dto.ts
  6. 14
      apps/client/src/app/components/platform/create-or-update-platform-dialog/create-or-update-account-platform.component.ts
  7. 4
      apps/client/src/app/components/platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html
  8. 21
      apps/client/src/app/components/platform/create-or-update-platform-dialog/create-or-update-platform-dialog.module.ts
  9. 12
      apps/client/src/app/components/platform/platform.component.html
  10. 42
      apps/client/src/app/components/platform/platform.component.ts
  11. 10
      apps/client/src/app/components/platform/platform.module.ts
  12. 2
      apps/client/src/app/pages/admin/admin-page.module.ts
  13. 23
      apps/client/src/app/services/admin.service.ts
  14. 23
      apps/client/src/app/services/data.service.ts
  15. 16
      libs/common/src/lib/permissions.ts

2
apps/api/src/app/app.module.ts

@ -64,10 +64,10 @@ import { PlatformModule } from './platform/platform.module';
InfoModule, InfoModule,
LogoModule, LogoModule,
OrderModule, OrderModule,
PlatformModule,
PortfolioModule, PortfolioModule,
PrismaModule, PrismaModule,
RedisCacheModule, RedisCacheModule,
PlatformModule,
ScheduleModule.forRoot(), ScheduleModule.forRoot(),
ServeStaticModule.forRoot({ ServeStaticModule.forRoot({
serveStaticOptions: { serveStaticOptions: {

6
apps/api/src/app/platform/create-platform.dto.ts

@ -1,10 +1,6 @@
import { IsOptional, IsString } from 'class-validator'; import { IsString } from 'class-validator';
export class CreatePlatformDto { export class CreatePlatformDto {
@IsOptional()
@IsString()
id?: string;
@IsString() @IsString()
name: string; name: string;

4
apps/api/src/app/platform/platform.controller.ts

@ -23,7 +23,7 @@ import { UpdatePlatformDto } from './update-platform.dto';
@Controller('platform') @Controller('platform')
export class PlatformController { export class PlatformController {
public constructor( public constructor(
private platformService: PlatformService, private readonly platformService: PlatformService,
@Inject(REQUEST) private readonly request: RequestWithUser @Inject(REQUEST) private readonly request: RequestWithUser
) {} ) {}
@ -96,7 +96,7 @@ export class PlatformController {
StatusCodes.FORBIDDEN StatusCodes.FORBIDDEN
); );
} }
console.log('id', id);
const originalPlatform = await this.platformService.getPlatform({ const originalPlatform = await this.platformService.getPlatform({
id id
}); });

8
apps/api/src/app/platform/platform.service.ts

@ -24,11 +24,13 @@ export class PlatformService {
}); });
} }
public async updatePlatform(params: { public async updatePlatform({
where: Prisma.PlatformWhereUniqueInput; data,
where
}: {
data: Prisma.PlatformUpdateInput; data: Prisma.PlatformUpdateInput;
where: Prisma.PlatformWhereUniqueInput;
}): Promise<Platform> { }): Promise<Platform> {
const { data, where } = params;
return this.prismaService.platform.update({ return this.prismaService.platform.update({
data, data,
where where

5
apps/api/src/app/platform/update-platform.dto.ts

@ -1,9 +1,8 @@
import { IsOptional, IsString } from 'class-validator'; import { IsString } from 'class-validator';
export class UpdatePlatformDto { export class UpdatePlatformDto {
@IsOptional()
@IsString() @IsString()
id?: string; id: string;
@IsString() @IsString()
name: string; name: string;

14
apps/client/src/app/components/platform/create-or-update-platform-dialog/create-or-update-account-platform.component.ts

@ -1,9 +1,4 @@
import { import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';
ChangeDetectionStrategy,
Component,
Inject,
OnDestroy
} from '@angular/core';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
import { Subject } from 'rxjs'; import { Subject } from 'rxjs';
@ -16,10 +11,7 @@ import { CreateOrUpdatePlatformDialogParams } from './interfaces/interfaces';
styleUrls: ['./create-or-update-platform-dialog.scss'], styleUrls: ['./create-or-update-platform-dialog.scss'],
templateUrl: 'create-or-update-platform-dialog.html' templateUrl: 'create-or-update-platform-dialog.html'
}) })
export class CreateOrUpdatePlatformDialog implements OnDestroy { export class CreateOrUpdatePlatformDialog {
public currencies: string[] = [];
public platforms: { id: string; name: string }[];
private unsubscribeSubject = new Subject<void>(); private unsubscribeSubject = new Subject<void>();
public constructor( public constructor(
@ -27,8 +19,6 @@ export class CreateOrUpdatePlatformDialog implements OnDestroy {
@Inject(MAT_DIALOG_DATA) public data: CreateOrUpdatePlatformDialogParams @Inject(MAT_DIALOG_DATA) public data: CreateOrUpdatePlatformDialogParams
) {} ) {}
ngOnInit() {}
public onCancel() { public onCancel() {
this.dialogRef.close(); this.dialogRef.close();
} }

4
apps/client/src/app/components/platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html

@ -1,4 +1,4 @@
<form #addPlatformtForm="ngForm" class="d-flex flex-column h-100"> <form #addPlatformForm="ngForm" class="d-flex flex-column h-100">
<h1 *ngIf="data.platform.id" i18n mat-dialog-title>Update platform</h1> <h1 *ngIf="data.platform.id" i18n mat-dialog-title>Update platform</h1>
<h1 *ngIf="!data.platform.id" i18n mat-dialog-title>Add platform</h1> <h1 *ngIf="!data.platform.id" i18n mat-dialog-title>Add platform</h1>
<div class="flex-grow-1 py-3" mat-dialog-content> <div class="flex-grow-1 py-3" mat-dialog-content>
@ -20,7 +20,7 @@
<button <button
color="primary" color="primary"
mat-flat-button mat-flat-button
[disabled]="!addPlatformtForm.form.valid" [disabled]="!addPlatformForm.form.valid"
[mat-dialog-close]="data" [mat-dialog-close]="data"
> >
<ng-container i18n>Save</ng-container> <ng-container i18n>Save</ng-container>

21
apps/client/src/app/components/platform/create-or-update-platform-dialog/create-or-update-platform-dialog.module.ts

@ -1,26 +1,9 @@
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { ReactiveFormsModule } from '@angular/forms';
import { MatButtonModule } from '@angular/material/button';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatDialogModule } from '@angular/material/dialog';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatInputModule } from '@angular/material/input';
import { MatSelectModule } from '@angular/material/select';
import { CreateOrUpdatePlatformDialog } from './create-or-update-account-platform.component'; import { CreateOrUpdatePlatformDialog } from './create-or-update-account-platform.component';
@NgModule({ @NgModule({
declarations: [CreateOrUpdatePlatformDialog], declarations: [CreateOrUpdatePlatformDialog],
imports: [ imports: [ReactiveFormsModule]
CommonModule,
FormsModule,
MatButtonModule,
MatCheckboxModule,
MatDialogModule,
MatFormFieldModule,
MatInputModule,
MatSelectModule,
ReactiveFormsModule
]
}) })
export class GfCreateOrUpdatePlatformDialogModule {} export class GfCreateOrUpdatePlatformDialogModule {}

12
apps/client/src/app/components/platform/platform.component.html

@ -42,7 +42,7 @@
[tooltip]="element.name" [tooltip]="element.name"
[url]="element.url" [url]="element.url"
></gf-symbol-icon> ></gf-symbol-icon>
<span>{{ element.name }} </span> <span>{{ element.name }}</span>
</td></ng-container </td></ng-container
> >
@ -87,7 +87,6 @@
</button> </button>
</mat-menu> </mat-menu>
</td> </td>
<td *matFooterCellDef class="px-1" mat-footer-cell></td>
</ng-container> </ng-container>
<tr *matHeaderRowDef="displayedColumns" mat-header-row></tr> <tr *matHeaderRowDef="displayedColumns" mat-header-row></tr>
@ -96,14 +95,7 @@
</div> </div>
</div> </div>
<div <div *ngIf="hasPermissionToCreatePlatform" class="fab-container">
*ngIf="
!hasImpersonationId &&
hasPermissionToCreatePlatform &&
!user.settings.isRestrictedView
"
class="fab-container"
>
<a <a
class="align-items-center d-flex justify-content-center" class="align-items-center d-flex justify-content-center"
color="primary" color="primary"

42
apps/client/src/app/components/platform/platform.component.ts

@ -11,16 +11,14 @@ import { UpdatePlatformDto } from '@ghostfolio/api/app/platform/update-platform.
import { get } from 'lodash'; import { get } from 'lodash';
import { MatTableDataSource } from '@angular/material/table'; import { MatTableDataSource } from '@angular/material/table';
import { ActivatedRoute, Router } from '@angular/router'; import { ActivatedRoute, Router } from '@angular/router';
import { ImpersonationStorageService } from '@ghostfolio/client/services/impersonation-storage.service';
import { UserService } from '@ghostfolio/client/services/user/user.service'; import { UserService } from '@ghostfolio/client/services/user/user.service';
import { User } from '@ghostfolio/common/interfaces';
import { hasPermission, permissions } from '@ghostfolio/common/permissions'; import { hasPermission, permissions } from '@ghostfolio/common/permissions';
import { Platform, Platform as PlatformModel } from '@prisma/client'; import { Platform, Platform as PlatformModel } from '@prisma/client';
import { Subject, takeUntil } from 'rxjs'; import { Subject, takeUntil } from 'rxjs';
import { CreateOrUpdatePlatformDialog } from './create-or-update-platform-dialog/create-or-update-account-platform.component'; import { CreateOrUpdatePlatformDialog } from './create-or-update-platform-dialog/create-or-update-account-platform.component';
import { MatDialog } from '@angular/material/dialog'; import { MatDialog } from '@angular/material/dialog';
import { DeviceDetectorService } from 'ngx-device-detector'; import { DeviceDetectorService } from 'ngx-device-detector';
import { DataService } from '@ghostfolio/client/services/data.service'; import { AdminService } from '@ghostfolio/client/services/admin.service';
@Component({ @Component({
selector: 'gf-platform-overview', selector: 'gf-platform-overview',
@ -36,22 +34,19 @@ export class AdminPlatformComponent implements OnInit, OnDestroy {
public deviceType: string; public deviceType: string;
public hasPermissionToCreatePlatform: boolean; public hasPermissionToCreatePlatform: boolean;
public hasPermissionToDeletePlatform: boolean; public hasPermissionToDeletePlatform: boolean;
public hasImpersonationId: boolean;
public user: User;
public dataSource: MatTableDataSource<Platform> = new MatTableDataSource(); public dataSource: MatTableDataSource<Platform> = new MatTableDataSource();
private unsubscribeSubject = new Subject<void>(); private unsubscribeSubject = new Subject<void>();
public constructor( public constructor(
private dataService: DataService,
private changeDetectorRef: ChangeDetectorRef, private changeDetectorRef: ChangeDetectorRef,
private userService: UserService, private adminService: AdminService,
private deviceService: DeviceDetectorService, private deviceService: DeviceDetectorService,
private impersonationStorageService: ImpersonationStorageService,
private dialog: MatDialog, private dialog: MatDialog,
private route: ActivatedRoute, private route: ActivatedRoute,
private router: Router private router: Router,
private userService: UserService
) { ) {
this.route.queryParams this.route.queryParams
.pipe(takeUntil(this.unsubscribeSubject)) .pipe(takeUntil(this.unsubscribeSubject))
@ -75,25 +70,18 @@ export class AdminPlatformComponent implements OnInit, OnDestroy {
public ngOnInit() { public ngOnInit() {
this.deviceType = this.deviceService.getDeviceInfo().deviceType; this.deviceType = this.deviceService.getDeviceInfo().deviceType;
this.impersonationStorageService
.onChangeHasImpersonation()
.pipe(takeUntil(this.unsubscribeSubject))
.subscribe((impersonationId) => {
this.hasImpersonationId = !!impersonationId;
});
this.userService.stateChanged this.userService.stateChanged
.pipe(takeUntil(this.unsubscribeSubject)) .pipe(takeUntil(this.unsubscribeSubject))
.subscribe((state) => { .subscribe((state) => {
if (state?.user) { if (state?.user) {
this.user = state.user; const user = state.user;
this.hasPermissionToCreatePlatform = hasPermission( this.hasPermissionToCreatePlatform = hasPermission(
this.user.permissions, user.permissions,
permissions.createPlatform permissions.createPlatform
); );
this.hasPermissionToCreatePlatform = hasPermission( this.hasPermissionToDeletePlatform = hasPermission(
this.user.permissions, user.permissions,
permissions.deletePlatform permissions.deletePlatform
); );
@ -116,7 +104,7 @@ export class AdminPlatformComponent implements OnInit, OnDestroy {
} }
public deletePlatform(aId: string) { public deletePlatform(aId: string) {
this.dataService this.adminService
.deletePlatform(aId) .deletePlatform(aId)
.pipe(takeUntil(this.unsubscribeSubject)) .pipe(takeUntil(this.unsubscribeSubject))
.subscribe({ .subscribe({
@ -132,7 +120,7 @@ export class AdminPlatformComponent implements OnInit, OnDestroy {
} }
private fetchPlatforms() { private fetchPlatforms() {
this.dataService this.adminService
.fetchPlatforms() .fetchPlatforms()
.pipe(takeUntil(this.unsubscribeSubject)) .pipe(takeUntil(this.unsubscribeSubject))
.subscribe((platforms) => { .subscribe((platforms) => {
@ -164,7 +152,7 @@ export class AdminPlatformComponent implements OnInit, OnDestroy {
const platform: CreatePlatformDto = data?.platform; const platform: CreatePlatformDto = data?.platform;
if (platform) { if (platform) {
this.dataService this.adminService
.postPlatform(platform) .postPlatform(platform)
.pipe(takeUntil(this.unsubscribeSubject)) .pipe(takeUntil(this.unsubscribeSubject))
.subscribe({ .subscribe({
@ -187,9 +175,9 @@ export class AdminPlatformComponent implements OnInit, OnDestroy {
const dialogRef = this.dialog.open(CreateOrUpdatePlatformDialog, { const dialogRef = this.dialog.open(CreateOrUpdatePlatformDialog, {
data: { data: {
platform: { platform: {
id: id, id,
name: name, name,
url: url url
} }
}, },
@ -204,7 +192,7 @@ export class AdminPlatformComponent implements OnInit, OnDestroy {
const platform: UpdatePlatformDto = data?.platform; const platform: UpdatePlatformDto = data?.platform;
if (platform) { if (platform) {
this.dataService this.adminService
.putPlatform(platform) .putPlatform(platform)
.pipe(takeUntil(this.unsubscribeSubject)) .pipe(takeUntil(this.unsubscribeSubject))
.subscribe({ .subscribe({

10
apps/client/src/app/components/platform/platform.module.ts

@ -7,19 +7,19 @@ import { MatSortModule } from '@angular/material/sort';
import { MatTableModule } from '@angular/material/table'; import { MatTableModule } from '@angular/material/table';
import { GfCreateOrUpdatePlatformDialogModule } from './create-or-update-platform-dialog/create-or-update-platform-dialog.module'; import { GfCreateOrUpdatePlatformDialogModule } from './create-or-update-platform-dialog/create-or-update-platform-dialog.module';
import { MatMenuModule } from '@angular/material/menu'; import { MatMenuModule } from '@angular/material/menu';
import { GfSymbolIconModule } from '../symbol-icon/symbol-icon.module'; import { GfSymbolIconModule } from '@ghostfolio/client/components/symbol-icon/symbol-icon.module';
@NgModule({ @NgModule({
declarations: [AdminPlatformComponent], declarations: [AdminPlatformComponent],
imports: [ imports: [
CommonModule, CommonModule,
RouterModule,
MatButtonModule,
GfSymbolIconModule, GfSymbolIconModule,
GfCreateOrUpdatePlatformDialogModule,
MatButtonModule,
MatMenuModule,
MatSortModule, MatSortModule,
MatTableModule, MatTableModule,
MatMenuModule, RouterModule
GfCreateOrUpdatePlatformDialogModule
], ],
schemas: [CUSTOM_ELEMENTS_SCHEMA] schemas: [CUSTOM_ELEMENTS_SCHEMA]
}) })

2
apps/client/src/app/pages/admin/admin-page.module.ts

@ -20,8 +20,8 @@ import { AdminPageComponent } from './admin-page.component';
GfAdminJobsModule, GfAdminJobsModule,
GfAdminMarketDataModule, GfAdminMarketDataModule,
GfAdminOverviewModule, GfAdminOverviewModule,
GfAdminUsersModule,
GfAdminPlatformModule, GfAdminPlatformModule,
GfAdminUsersModule,
MatTabsModule MatTabsModule
], ],
providers: [CacheService], providers: [CacheService],

23
apps/client/src/app/services/admin.service.ts

@ -2,6 +2,8 @@ import { HttpClient, HttpParams } from '@angular/common/http';
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { UpdateAssetProfileDto } from '@ghostfolio/api/app/admin/update-asset-profile.dto'; import { UpdateAssetProfileDto } from '@ghostfolio/api/app/admin/update-asset-profile.dto';
import { UpdateMarketDataDto } from '@ghostfolio/api/app/admin/update-market-data.dto'; import { UpdateMarketDataDto } from '@ghostfolio/api/app/admin/update-market-data.dto';
import { CreatePlatformDto } from '@ghostfolio/api/app/platform/create-platform.dto';
import { UpdatePlatformDto } from '@ghostfolio/api/app/platform/update-platform.dto';
import { IDataProviderHistoricalResponse } from '@ghostfolio/api/services/interfaces/interfaces'; import { IDataProviderHistoricalResponse } from '@ghostfolio/api/services/interfaces/interfaces';
import { DATE_FORMAT } from '@ghostfolio/common/helper'; import { DATE_FORMAT } from '@ghostfolio/common/helper';
import { import {
@ -10,7 +12,7 @@ import {
EnhancedSymbolProfile, EnhancedSymbolProfile,
UniqueAsset UniqueAsset
} from '@ghostfolio/common/interfaces'; } from '@ghostfolio/common/interfaces';
import { DataSource, MarketData } from '@prisma/client'; import { DataSource, MarketData, Platform } from '@prisma/client';
import { JobStatus } from 'bull'; import { JobStatus } from 'bull';
import { format, parseISO } from 'date-fns'; import { format, parseISO } from 'date-fns';
import { Observable, map } from 'rxjs'; import { Observable, map } from 'rxjs';
@ -37,6 +39,10 @@ export class AdminService {
}); });
} }
public deletePlatform(aId: string) {
return this.http.delete<void>(`/api/v1/platform/${aId}`);
}
public deleteProfileData({ dataSource, symbol }: UniqueAsset) { public deleteProfileData({ dataSource, symbol }: UniqueAsset) {
return this.http.delete<void>( return this.http.delete<void>(
`/api/v1/admin/profile-data/${dataSource}/${symbol}` `/api/v1/admin/profile-data/${dataSource}/${symbol}`
@ -74,6 +80,10 @@ export class AdminService {
}); });
} }
public fetchPlatforms() {
return this.http.get<Platform[]>('/api/v1/platform');
}
public gather7Days() { public gather7Days() {
return this.http.post<void>('/api/v1/admin/gather', {}); return this.http.post<void>('/api/v1/admin/gather', {});
} }
@ -138,6 +148,10 @@ export class AdminService {
); );
} }
public postPlatform(aPlatform: CreatePlatformDto) {
return this.http.post<Platform>(`/api/v1/platform`, aPlatform);
}
public putMarketData({ public putMarketData({
dataSource, dataSource,
date, date,
@ -156,4 +170,11 @@ export class AdminService {
return this.http.put<MarketData>(url, marketData); return this.http.put<MarketData>(url, marketData);
} }
public putPlatform(aPlatform: UpdatePlatformDto) {
return this.http.put<Platform>(
`/api/v1/platform/${aPlatform.id}`,
aPlatform
);
}
} }

23
apps/client/src/app/services/data.service.ts

@ -6,8 +6,6 @@ import { UpdateAccountDto } from '@ghostfolio/api/app/account/update-account.dto
import { CreateOrderDto } from '@ghostfolio/api/app/order/create-order.dto'; import { CreateOrderDto } from '@ghostfolio/api/app/order/create-order.dto';
import { Activities } from '@ghostfolio/api/app/order/interfaces/activities.interface'; import { Activities } from '@ghostfolio/api/app/order/interfaces/activities.interface';
import { UpdateOrderDto } from '@ghostfolio/api/app/order/update-order.dto'; import { UpdateOrderDto } from '@ghostfolio/api/app/order/update-order.dto';
import { CreatePlatformDto } from '@ghostfolio/api/app/platform/create-platform.dto';
import { UpdatePlatformDto } from '@ghostfolio/api/app/platform/update-platform.dto';
import { PortfolioPositionDetail } from '@ghostfolio/api/app/portfolio/interfaces/portfolio-position-detail.interface'; import { PortfolioPositionDetail } from '@ghostfolio/api/app/portfolio/interfaces/portfolio-position-detail.interface';
import { PortfolioPositions } from '@ghostfolio/api/app/portfolio/interfaces/portfolio-positions.interface'; import { PortfolioPositions } from '@ghostfolio/api/app/portfolio/interfaces/portfolio-positions.interface';
import { LookupItem } from '@ghostfolio/api/app/symbol/interfaces/lookup-item.interface'; import { LookupItem } from '@ghostfolio/api/app/symbol/interfaces/lookup-item.interface';
@ -41,7 +39,7 @@ import {
import { filterGlobalPermissions } from '@ghostfolio/common/permissions'; import { filterGlobalPermissions } from '@ghostfolio/common/permissions';
import { AccountWithValue, DateRange, GroupBy } from '@ghostfolio/common/types'; import { AccountWithValue, DateRange, GroupBy } from '@ghostfolio/common/types';
import { translate } from '@ghostfolio/ui/i18n'; import { translate } from '@ghostfolio/ui/i18n';
import { DataSource, Order as OrderModel, Platform } from '@prisma/client'; import { DataSource, Order as OrderModel } from '@prisma/client';
import { format, parseISO } from 'date-fns'; import { format, parseISO } from 'date-fns';
import { cloneDeep, groupBy, isNumber } from 'lodash'; import { cloneDeep, groupBy, isNumber } from 'lodash';
import { Observable } from 'rxjs'; import { Observable } from 'rxjs';
@ -74,10 +72,6 @@ export class DataService {
return this.http.get<Accounts>('/api/v1/account'); return this.http.get<Accounts>('/api/v1/account');
} }
public fetchPlatforms() {
return this.http.get<Platform[]>('/api/v1/platform');
}
public fetchActivities({ public fetchActivities({
filters filters
}: { }: {
@ -152,10 +146,6 @@ export class DataService {
return this.http.delete<any>(`/api/v1/account/${aId}`); return this.http.delete<any>(`/api/v1/account/${aId}`);
} }
public deletePlatform(aId: string) {
return this.http.delete<any>(`/api/v1/platform/${aId}`);
}
public deleteAllOrders() { public deleteAllOrders() {
return this.http.delete<any>(`/api/v1/order/`); return this.http.delete<any>(`/api/v1/order/`);
} }
@ -415,10 +405,6 @@ export class DataService {
return this.http.post<OrderModel>(`/api/v1/account`, aAccount); return this.http.post<OrderModel>(`/api/v1/account`, aAccount);
} }
public postPlatform(aPlatform: CreatePlatformDto) {
return this.http.post<OrderModel>(`/api/v1/platform`, aPlatform);
}
public postOrder(aOrder: CreateOrderDto) { public postOrder(aOrder: CreateOrderDto) {
return this.http.post<OrderModel>(`/api/v1/order`, aOrder); return this.http.post<OrderModel>(`/api/v1/order`, aOrder);
} }
@ -431,13 +417,6 @@ export class DataService {
return this.http.put<UserItem>(`/api/v1/account/${aAccount.id}`, aAccount); return this.http.put<UserItem>(`/api/v1/account/${aAccount.id}`, aAccount);
} }
public putPlatform(aPlatform: UpdatePlatformDto) {
return this.http.put<UserItem>(
`/api/v1/platform/${aPlatform.id}`,
aPlatform
);
}
public putAdminSetting(key: string, aData: PropertyDto) { public putAdminSetting(key: string, aData: PropertyDto) {
return this.http.put<void>(`/api/v1/admin/settings/${key}`, aData); return this.http.put<void>(`/api/v1/admin/settings/${key}`, aData);
} }

16
libs/common/src/lib/permissions.ts

@ -6,11 +6,13 @@ export const permissions = {
createAccess: 'createAccess', createAccess: 'createAccess',
createAccount: 'createAccount', createAccount: 'createAccount',
createOrder: 'createOrder', createOrder: 'createOrder',
createPlatform: 'createPlatform',
createUserAccount: 'createUserAccount', createUserAccount: 'createUserAccount',
deleteAccess: 'deleteAccess', deleteAccess: 'deleteAccess',
deleteAccount: 'deleteAcccount', deleteAccount: 'deleteAcccount',
deleteAuthDevice: 'deleteAuthDevice', deleteAuthDevice: 'deleteAuthDevice',
deleteOrder: 'deleteOrder', deleteOrder: 'deleteOrder',
deletePlatform: 'deletePlatform',
deleteUser: 'deleteUser', deleteUser: 'deleteUser',
enableFearAndGreedIndex: 'enableFearAndGreedIndex', enableFearAndGreedIndex: 'enableFearAndGreedIndex',
enableImport: 'enableImport', enableImport: 'enableImport',
@ -26,11 +28,9 @@ export const permissions = {
updateAccount: 'updateAccount', updateAccount: 'updateAccount',
updateAuthDevice: 'updateAuthDevice', updateAuthDevice: 'updateAuthDevice',
updateOrder: 'updateOrder', updateOrder: 'updateOrder',
updatePlatform: 'updatePlatform',
updateUserSettings: 'updateUserSettings', updateUserSettings: 'updateUserSettings',
updateViewMode: 'updateViewMode', updateViewMode: 'updateViewMode'
createPlatform: 'createPlatform',
deletePlatform: 'deletePlatform',
updatePlatform: 'updatePlatform'
}; };
export function getPermissions(aRole: Role): string[] { export function getPermissions(aRole: Role): string[] {
@ -41,19 +41,19 @@ export function getPermissions(aRole: Role): string[] {
permissions.createAccess, permissions.createAccess,
permissions.createAccount, permissions.createAccount,
permissions.createOrder, permissions.createOrder,
permissions.createPlatform,
permissions.deleteAccess, permissions.deleteAccess,
permissions.deleteAccount, permissions.deleteAccount,
permissions.deleteAuthDevice, permissions.deleteAuthDevice,
permissions.deleteOrder, permissions.deleteOrder,
permissions.deletePlatform,
permissions.deleteUser, permissions.deleteUser,
permissions.updateAccount, permissions.updateAccount,
permissions.updateAuthDevice, permissions.updateAuthDevice,
permissions.updateOrder, permissions.updateOrder,
permissions.updatePlatform,
permissions.updateUserSettings, permissions.updateUserSettings,
permissions.updateViewMode, permissions.updateViewMode
permissions.createPlatform,
permissions.deletePlatform,
permissions.updatePlatform
]; ];
case 'DEMO': case 'DEMO':

Loading…
Cancel
Save