Searchlist
Function: SearchList
Type: API Endpoint (POST)
Purpose:
The function searches for a list of values based on specified conditions from a given table and column in the customer database.
URL:
POST /api/mdm/search_list
Request Headers:
- customer_key (str, required): An encoded string that contains the lscode and firmcode for the customer, which must be decoded for further processing.
Request Body:
{
"table": "<Table Name>",
"column": "<colName>",
"filter": "<filter>",
"condition": "<condition>"
}
Response Example:
[
{"Custom4": "<Customer>"}
]
Steps:
-
Log Creation:
A unique log ID is generated based on the current date and time, ensuring traceability for each request. -
Customer Key Decoding:
The customer_key is decoded using base64. If the decoded value is invalid or improperly formatted, the function returns an error response. -
Request Body Parsing:
The function retrieves the table, column, filter, and condition from the request body to use in the SQL query. -
Database Connection:
Using the decoded values, a connection to the customer-specific database is established with the custCursorConnection function. -
SQL Query Construction:
A SQL query is dynamically constructed based on the input parameters, including the specified table, column, filter, and condition. The query is executed to fetch the relevant records. -
Response Construction:
The results from the query execution are formatted into a list of dictionaries and returned as a JSON response.
Error Handling:
- Invalid Customer Key:
If the decoded customer key is empty or does not follow the expected format, an appropriate error message is returned. - Invalid Request Body:
If any required fields in the request body are missing, an error response is returned. - Database Errors:
Any exceptions during query execution are caught, logged, and a 500 status response is returned with error details.
Security Considerations:
- The customer_key is encoded to protect sensitive information like lscode and firmcode.
Error Response Example:
{
"status": "failed",
"message": "Invalid Customer Key"
}
{
"status": "failed",
"message": "Invalid request body"
}
{
"status": "failed",
"message": {
"error_type": "OperationalError",
"message": "SQL syntax error"
}
}
Headers
Request body
Response
Successful Response
Changes
No recorded changes to this endpoint across all 1 revision of this API.