|
|
@ -52,12 +52,14 @@ export class AssetProfileDialog implements OnDestroy, OnInit {
|
|
|
|
assetClass: new FormControl<AssetClass>(undefined),
|
|
|
|
assetClass: new FormControl<AssetClass>(undefined),
|
|
|
|
assetSubClass: new FormControl<AssetSubClass>(undefined),
|
|
|
|
assetSubClass: new FormControl<AssetSubClass>(undefined),
|
|
|
|
comment: '',
|
|
|
|
comment: '',
|
|
|
|
|
|
|
|
countries: '',
|
|
|
|
currency: '',
|
|
|
|
currency: '',
|
|
|
|
historicalData: this.formBuilder.group({
|
|
|
|
historicalData: this.formBuilder.group({
|
|
|
|
csvString: ''
|
|
|
|
csvString: ''
|
|
|
|
}),
|
|
|
|
}),
|
|
|
|
name: ['', Validators.required],
|
|
|
|
name: ['', Validators.required],
|
|
|
|
scraperConfiguration: '',
|
|
|
|
scraperConfiguration: '',
|
|
|
|
|
|
|
|
sectors: '',
|
|
|
|
symbolMapping: ''
|
|
|
|
symbolMapping: ''
|
|
|
|
});
|
|
|
|
});
|
|
|
|
public assetProfileSubClass: string;
|
|
|
|
public assetProfileSubClass: string;
|
|
|
@ -119,20 +121,20 @@ export class AssetProfileDialog implements OnDestroy, OnInit {
|
|
|
|
this.marketDataDetails = marketData;
|
|
|
|
this.marketDataDetails = marketData;
|
|
|
|
this.sectors = {};
|
|
|
|
this.sectors = {};
|
|
|
|
|
|
|
|
|
|
|
|
if (assetProfile?.countries?.length > 0) {
|
|
|
|
if (this.assetProfile?.countries?.length > 0) {
|
|
|
|
for (const country of assetProfile.countries) {
|
|
|
|
for (const { code, name, weight } of this.assetProfile.countries) {
|
|
|
|
this.countries[country.code] = {
|
|
|
|
this.countries[code] = {
|
|
|
|
name: country.name,
|
|
|
|
name,
|
|
|
|
value: country.weight
|
|
|
|
value: weight
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (assetProfile?.sectors?.length > 0) {
|
|
|
|
if (this.assetProfile?.sectors?.length > 0) {
|
|
|
|
for (const sector of assetProfile.sectors) {
|
|
|
|
for (const { name, weight } of this.assetProfile.sectors) {
|
|
|
|
this.sectors[sector.name] = {
|
|
|
|
this.sectors[name] = {
|
|
|
|
name: sector.name,
|
|
|
|
name,
|
|
|
|
value: sector.weight
|
|
|
|
value: weight
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -141,6 +143,11 @@ export class AssetProfileDialog implements OnDestroy, OnInit {
|
|
|
|
assetClass: this.assetProfile.assetClass ?? null,
|
|
|
|
assetClass: this.assetProfile.assetClass ?? null,
|
|
|
|
assetSubClass: this.assetProfile.assetSubClass ?? null,
|
|
|
|
assetSubClass: this.assetProfile.assetSubClass ?? null,
|
|
|
|
comment: this.assetProfile?.comment ?? '',
|
|
|
|
comment: this.assetProfile?.comment ?? '',
|
|
|
|
|
|
|
|
countries: JSON.stringify(
|
|
|
|
|
|
|
|
this.assetProfile?.countries.map(({ code, weight }) => {
|
|
|
|
|
|
|
|
return { code, weight };
|
|
|
|
|
|
|
|
}) ?? []
|
|
|
|
|
|
|
|
),
|
|
|
|
currency: this.assetProfile?.currency,
|
|
|
|
currency: this.assetProfile?.currency,
|
|
|
|
historicalData: {
|
|
|
|
historicalData: {
|
|
|
|
csvString: AssetProfileDialog.HISTORICAL_DATA_TEMPLATE
|
|
|
|
csvString: AssetProfileDialog.HISTORICAL_DATA_TEMPLATE
|
|
|
@ -149,6 +156,7 @@ export class AssetProfileDialog implements OnDestroy, OnInit {
|
|
|
|
scraperConfiguration: JSON.stringify(
|
|
|
|
scraperConfiguration: JSON.stringify(
|
|
|
|
this.assetProfile?.scraperConfiguration ?? {}
|
|
|
|
this.assetProfile?.scraperConfiguration ?? {}
|
|
|
|
),
|
|
|
|
),
|
|
|
|
|
|
|
|
sectors: JSON.stringify(this.assetProfile?.sectors ?? []),
|
|
|
|
symbolMapping: JSON.stringify(this.assetProfile?.symbolMapping ?? {})
|
|
|
|
symbolMapping: JSON.stringify(this.assetProfile?.symbolMapping ?? {})
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
@ -239,15 +247,25 @@ export class AssetProfileDialog implements OnDestroy, OnInit {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public onSubmit() {
|
|
|
|
public onSubmit() {
|
|
|
|
|
|
|
|
let countries = [];
|
|
|
|
let scraperConfiguration = {};
|
|
|
|
let scraperConfiguration = {};
|
|
|
|
|
|
|
|
let sectors = [];
|
|
|
|
let symbolMapping = {};
|
|
|
|
let symbolMapping = {};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
countries = JSON.parse(this.assetProfileForm.controls['countries'].value);
|
|
|
|
|
|
|
|
} catch {}
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
scraperConfiguration = JSON.parse(
|
|
|
|
scraperConfiguration = JSON.parse(
|
|
|
|
this.assetProfileForm.controls['scraperConfiguration'].value
|
|
|
|
this.assetProfileForm.controls['scraperConfiguration'].value
|
|
|
|
);
|
|
|
|
);
|
|
|
|
} catch {}
|
|
|
|
} catch {}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
sectors = JSON.parse(this.assetProfileForm.controls['sectors'].value);
|
|
|
|
|
|
|
|
} catch {}
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
symbolMapping = JSON.parse(
|
|
|
|
symbolMapping = JSON.parse(
|
|
|
|
this.assetProfileForm.controls['symbolMapping'].value
|
|
|
|
this.assetProfileForm.controls['symbolMapping'].value
|
|
|
@ -255,7 +273,9 @@ export class AssetProfileDialog implements OnDestroy, OnInit {
|
|
|
|
} catch {}
|
|
|
|
} catch {}
|
|
|
|
|
|
|
|
|
|
|
|
const assetProfileData: UpdateAssetProfileDto = {
|
|
|
|
const assetProfileData: UpdateAssetProfileDto = {
|
|
|
|
|
|
|
|
countries,
|
|
|
|
scraperConfiguration,
|
|
|
|
scraperConfiguration,
|
|
|
|
|
|
|
|
sectors,
|
|
|
|
symbolMapping,
|
|
|
|
symbolMapping,
|
|
|
|
assetClass: this.assetProfileForm.controls['assetClass'].value,
|
|
|
|
assetClass: this.assetProfileForm.controls['assetClass'].value,
|
|
|
|
assetSubClass: this.assetProfileForm.controls['assetSubClass'].value,
|
|
|
|
assetSubClass: this.assetProfileForm.controls['assetSubClass'].value,
|
|
|
|