Browse Source

Finished feature

pull/2854/head
Hugo Persson 2 years ago
committed by Thomas Kaul
parent
commit
c579203375
  1. 8
      apps/api/src/app/admin/admin.service.ts
  2. 16
      apps/api/src/app/admin/update-asset-profile.dto.ts
  3. 8
      apps/api/src/services/symbol-profile/symbol-profile.service.ts
  4. 28
      apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
  5. 8
      apps/client/src/app/services/admin.service.ts

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

@ -326,7 +326,9 @@ export class AdminService {
name,
scraperConfiguration,
symbol,
symbolMapping
symbolMapping,
countries,
sectors
}: Prisma.SymbolProfileUpdateInput & UniqueAsset) {
await this.symbolProfileService.updateSymbolProfile({
assetClass,
@ -337,7 +339,9 @@ export class AdminService {
name,
scraperConfiguration,
symbol,
symbolMapping
symbolMapping,
countries,
sectors
});
const [symbolProfile] = await this.symbolProfileService.getSymbolProfiles([

16
apps/api/src/app/admin/update-asset-profile.dto.ts

@ -1,5 +1,11 @@
import { AssetClass, AssetSubClass, Prisma } from '@prisma/client';
import { IsEnum, IsObject, IsOptional, IsString } from 'class-validator';
import {
IsArray,
IsEnum,
IsObject,
IsOptional,
IsString
} from 'class-validator';
export class UpdateAssetProfileDto {
@IsEnum(AssetClass, { each: true })
@ -31,4 +37,12 @@ export class UpdateAssetProfileDto {
symbolMapping?: {
[dataProvider: string]: string;
};
@IsArray()
@IsOptional()
sectors?: Prisma.InputJsonArray;
@IsArray()
@IsOptional()
countries?: Prisma.InputJsonArray;
}

8
apps/api/src/services/symbol-profile/symbol-profile.service.ts

@ -94,7 +94,9 @@ export class SymbolProfileService {
name,
scraperConfiguration,
symbol,
symbolMapping
symbolMapping,
countries,
sectors
}: Prisma.SymbolProfileUpdateInput & UniqueAsset) {
return this.prismaService.symbolProfile.update({
data: {
@ -104,7 +106,9 @@ export class SymbolProfileService {
currency,
name,
scraperConfiguration,
symbolMapping
symbolMapping,
countries,
sectors
},
where: { dataSource_symbol: { dataSource, symbol } }
});

28
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts

@ -138,7 +138,6 @@ export class AssetProfileDialog implements OnDestroy, OnInit {
};
}
}
this.assetProfileForm.setValue({
assetClass: this.assetProfile.assetClass ?? null,
assetSubClass: this.assetProfile.assetSubClass ?? null,
@ -152,8 +151,12 @@ export class AssetProfileDialog implements OnDestroy, OnInit {
this.assetProfile?.scraperConfiguration ?? {}
),
symbolMapping: JSON.stringify(this.assetProfile?.symbolMapping ?? {}),
countries: JSON.stringify(this.countries ?? {}),
sectors: JSON.stringify(this.sectors ?? {})
countries: JSON.stringify(
assetProfile.countries.map((e) => {
return { code: e.code, weight: e.weight };
}) ?? []
),
sectors: JSON.stringify(assetProfile.sectors ?? [])
});
console.log(this.assetProfileForm.value);
@ -191,8 +194,7 @@ export class AssetProfileDialog implements OnDestroy, OnInit {
header: true,
skipEmptyLines: true
}
).data;
).data;
this.adminService
.postMarketData({
@ -247,6 +249,9 @@ export class AssetProfileDialog implements OnDestroy, OnInit {
public onSubmit() {
let scraperConfiguration = {};
let symbolMapping = {};
let countries = [];
let sectors = [];
try {
scraperConfiguration = JSON.parse(
@ -260,6 +265,14 @@ export class AssetProfileDialog implements OnDestroy, OnInit {
);
} catch {}
try {
countries = JSON.parse(this.assetProfileForm.controls['countries'].value);
} catch {}
try {
sectors = JSON.parse(this.assetProfileForm.controls['sectors'].value);
} catch {}
const assetProfileData: UpdateAssetProfileDto = {
scraperConfiguration,
symbolMapping,
@ -269,8 +282,11 @@ export class AssetProfileDialog implements OnDestroy, OnInit {
currency: (<Currency>(
(<unknown>this.assetProfileForm.controls['currency'].value)
))?.value,
name: this.assetProfileForm.controls['name'].value
name: this.assetProfileForm.controls['name'].value,
countries,
sectors
};
console.log(assetProfileData);
this.adminService
.patchAssetProfile({

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

@ -211,7 +211,9 @@ export class AdminService {
name,
scraperConfiguration,
symbol,
symbolMapping
symbolMapping,
sectors,
countries
}: UniqueAsset & UpdateAssetProfileDto) {
return this.http.patch<EnhancedSymbolProfile>(
`/api/v1/admin/profile-data/${dataSource}/${symbol}`,
@ -222,7 +224,9 @@ export class AdminService {
currency,
name,
scraperConfiguration,
symbolMapping
symbolMapping,
sectors,
countries
}
);
}

Loading…
Cancel
Save