I am looking to flatten a nested object in my controller (new to Loopback and Typescript)
Here is my model :
export class SampleModel {
id: number;
code: number;
guide?: string;
gradeData?: string;
}
Here is an example object :
{
"id": 1,
"code": 12345,
"guide": "Guide for 2021",
"gradeData": {
"en": "Eng grade",
"de": "Ger grade"
}
}
Here is my controller:
// returns an array of SampleModel objects
@get('/guides')
async find(
@param.query.string('lang') lang: string,
@param.filter(SampleModel) filter?: Filter<SampleModel>
): Promise<SampleModel[]> {
return this.sampleModelRepository.find(filter); //this returns Promise<SampleModel[]>
}
I want to tweak this response a little based on lang
. For ex: if lang = en
I want the response to look like
[
{
"id": 1,
"code": 12345,
"guide": "Guide for 2021",
"gradeData": "Eng grade"
}
]
Something like this? Ofcource you need to make the langcode dynamic
[{
"id": 1,
"code": 12345,
"guide": "Guide for 2021",
"gradeData": {
"en": "Eng grade",
"de": "Ger grade"
}
}].map(e=>{
e.gradeData = e.gradeData["en"];
return e;
})
Returned object:
[
{
"id": 1,
"code": 12345,
"guide": "Guide for 2021",
"gradeData": "Eng grade"
}
]