Untitled
unknown
plain_text
a year ago
1.6 kB
13
Indexable
interface ReferenceDataResponse {
code: string;
name: string;
}
// Example response data
const responseData: ReferenceDataResponse[] = [
{ code: "PP", name: "Name 1" },
{ code: "CT", name: "Name 2" },
{ code: "PP", name: "Name 3" },
{ code: "CT", name: "Name 4" }
];
// Function to filter response based on criteria
function filterResponse(response: ReferenceDataResponse[], filters: ReferenceDataFilterRequest[]): ReferenceDataResponse[] {
return response.filter(entry => {
// Check against each filter criterion
for (let filter of filters) {
if (filter.criteriaName === "OWNER_SHIP_TYPE") {
// Apply specific filtering logic based on criteriaValue
if (filter.criteriaValue === "1") {
// Return entries that don't have code "PP"
if (entry.code === "PP") return false;
} else if (filter.criteriaValue === "2") {
// Return entries that have code "CT" only
if (entry.code !== "CT") return false;
}
}
// Add more criteria checks here if needed
}
return true; // Include the entry by default if no filters exclude it
});
}
// Example filter request
const filterRequest: ReferenceDataFilterRequest[] = [
{ criteriaName: "OWNER_SHIP_TYPE", criteriaValue: "1" }
];
// Applying the filter to responseData
const filteredData = filterResponse(responseData, filterRequest);
// Output the filtered data
console.log(filteredData);
Editor is loading...
Leave a Comment