Untitled

 avatar
unknown
plain_text
9 months ago
1.6 kB
9
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