Delete
Function: Delete
Type: API Endpoint (POST)
Purpose:
The function handles the deletion of records from the customer database based on the provided query and conditions. It ensures that records are backed up before deletion, maintaining a log of the operation.
URL:
POST /api/mdm/delete
Request Headers:
- customer_key (str, required): An encoded string containing the lscode and firmcode for the customer. This must be decoded for database access.
Request Body:
{
"query": "<query>",
"type": <int>
}
Response Example:
{
"status": "Success",
"message": ""
}
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 Validation:
The function checks if the required fields (query) are present in the request body. -
Database Connection:
A connection to the customer-specific database is established using the custCursorConnection function with the decoded lscode and firmcode. -
SQL Query Execution:
A SQL query is executed to first back up the records to be deleted, then delete them from the main table, handling any exceptions that may occur. -
Response Construction:
The results from the query execution are formatted 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": "Query should not be null"
}
{
"status": "failed",
"message": {
"error_type": "OperationalError",
"message": "SQL syntax error"
}
}
Query parameters
Request body
Response
Successful Response
Changes
No recorded changes to this endpoint across all 1 revision of this API.