assistance-engine/output/mbpp_avap_v2_A.json

762 lines
90 KiB
JSON

[
{
"task_id": 1,
"text": "Desarrollar un servicio de procesamiento de archivos de logs que reciba múltiples URLs de logs, las descargue concurrentemente, procese los códigos de estado HTTP, y retorne estadísticas agrupadas. El servicio debe validar las URLs, manejar errores de descarga, filtrar entradas por rangos de fechas, y generar un reporte con códigos de estado más frecuentes.",
"code": "addParam(\"urls\", log_urls)\ngetQueryParamList(\"urls\", url_list)\ngetListLen(url_list, total_urls)\nif(total_urls, 0, \"==\")\n _status = 400\n addVar(error_msg, \"No URLs provided\")\n addResult(error_msg)\nelse()\n addVar(success_count, 0)\n addVar(error_count, 0)\n addVar(status_codes, \"{}\")\n addVar(processed_logs, \"[]\")\n \n startLoop(i, 0, total_urls)\n itemFromList(url_list, i, current_url)\n \n if(None, None, `\"http\" in current_url or \"https\" in current_url`)\n download_task = go fetch_log_data(current_url)\n log_content = gather(download_task, 5000)\n \n if(None, None, `log_content is not None`)\n parsed_result = process_log_entries(log_content)\n variableFromJSON(parsed_result, \"status_counts\", entry_counts)\n variableFromJSON(parsed_result, \"total_entries\", entry_total)\n \n getListLen(entry_counts, counts_len)\n startLoop(j, 0, counts_len)\n itemFromList(entry_counts, j, status_entry)\n variableFromJSON(status_entry, \"code\", status_code)\n variableFromJSON(status_entry, \"count\", status_count)\n \n AddVariableToJSON(status_code, status_count, status_codes)\n endLoop()\n \n success_count = success_count + 1\n else()\n error_count = error_count + 1\n end()\n else()\n error_count = error_count + 1\n end()\n endLoop()\n \n AddVariableToJSON(\"successful_downloads\", success_count, status_codes)\n AddVariableToJSON(\"failed_downloads\", error_count, status_codes)\n AddVariableToJSON(\"total_urls_processed\", total_urls, status_codes)\n \n if(success_count, 0, \">\")\n _status = 200\n addResult(status_codes)\n else()\n _status = 404\n addVar(error_msg, \"No logs could be processed\")\n addResult(error_msg)\n end()\nend()\n\nfunction fetch_log_data(url)\n{\n addVar(headers, \"{}\")\n AddVariableToJSON(\"User-Agent\", \"AVAP-LogProcessor/1.0\", headers)\n \n try()\n RequestGet(url, \"\", headers, response_data, 10000)\n return(response_data)\n exception(fetch_error)\n return(None)\n end()\n}\n\nfunction process_log_entries(raw_log_data)\n{\n replace(raw_log_data, \"\\n\", \" | \", cleaned_data)\n getRegex(cleaned_data, \"HTTP/[0-9\\.]+ ([0-9]{3})\", status_matches)\n \n addVar(status_200_count, 0)\n addVar(status_400_count, 0)\n addVar(status_500_count, 0)\n addVar(other_count, 0)\n \n variableToList(status_matches, matches_list)\n getListLen(matches_list, matches_total)\n \n startLoop(k, 0, matches_total)\n itemFromList(matches_list, k, status_code)\n \n if(status_code, \"200\", \"==\")\n status_200_count = status_200_count + 1\n else()\n if(None, None, `status_code >= \"400\" and status_code < \"500\"`)\n status_400_count = status_400_count + 1\n else()\n if(None, None, `status_code >= \"500\"`)\n status_500_count = status_500_count + 1\n else()\n other_count = other_count + 1\n end()\n end()\n end()\n endLoop()\n \n addVar(result, \"{}\")\n addVar(counts_array, \"[]\")\n \n addVar(entry_200, \"{}\")\n AddVariableToJSON(\"code\", \"200\", entry_200)\n AddVariableToJSON(\"count\", status_200_count, entry_200)\n \n addVar(entry_400, \"{}\")\n AddVariableToJSON(\"code\", \"4xx\", entry_400)\n AddVariableToJSON(\"count\", status_400_count, entry_400)\n \n addVar(entry_500, \"{}\")\n AddVariableToJSON(\"code\", \"5xx\", entry_500)\n AddVariableToJSON(\"count\", status_500_count, entry_500)\n \n total_entries = status_200_count + status_400_count + status_500_count + other_count\n \n AddVariableToJSON(\"status_counts\", counts_array, result)\n AddVariableToJSON(\"total_entries\", total_entries, result)\n \n return(result)\n}",
"test_inputs": {
"urls": [
"http://example.com/log1.txt",
"https://api.test.com/logs/access.log"
]
},
"test_list": [
"re.match(r'\\{.*successful_downloads.*\\}', status_codes)",
"re.match(r'[0-9]+', str(total_urls))",
"re.match(r'(200|404|400)', str(_status))"
],
"_detected": [
"AddVariableToJSON",
"RequestGet",
"_status",
"addParam",
"addResult",
"addVar",
"else",
"end",
"endLoop",
"function",
"gather",
"getListLen",
"getQueryParamList",
"if_mode2",
"itemFromList",
"replace",
"return",
"startLoop",
"try",
"variableFromJSON"
],
"_reward": {
"ecs": 0.526,
"novelty": 1.0,
"test_quality": 1.0,
"reward": 0.763,
"detected": [
"AddVariableToJSON",
"RequestGet",
"_status",
"addParam",
"addResult",
"addVar",
"else",
"end",
"endLoop",
"function",
"gather",
"getListLen",
"getQueryParamList",
"if_mode2",
"itemFromList",
"replace",
"return",
"startLoop",
"try",
"variableFromJSON"
]
}
},
{
"task_id": 2,
"text": "Desarrollar un microservicio de autenticación que reciba credenciales de usuario, valide el formato del email, genere un hash SHA256 de la contraseña, verifique las credenciales contra una base de datos, registre el intento en una tabla de auditoría, y si es exitoso, genere un token JWT usando un conector externo. El servicio debe manejar múltiples usuarios concurrentemente, registrar timestamps de los intentos, y retornar tanto el resultado de autenticación como estadísticas del proceso.",
"code": "addParam(\"email\", user_email)\naddParam(\"password\", user_password)\naddParam(\"client_id\", client_identifier)\n\nif(None, None, `user_email is None or user_password is None`)\n _status = 400\n addVar(error_message, \"Missing required fields\")\n addResult(error_message)\nelse()\n getRegex(user_email, \"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$\", email_valid)\n \n if(None, None, `email_valid is None`)\n _status = 422\n addVar(validation_error, \"Invalid email format\")\n addResult(validation_error)\n else()\n encodeSHA256(user_password, password_hash)\n getDateTime(\"%Y-%m-%d %H:%M:%S\", 0, \"UTC\", current_timestamp)\n \n db_connector = avapConnector(\"db-auth-uuid-12345\")\n \n try()\n auth_task = go authenticate_user(user_email, password_hash, db_connector)\n jwt_task = go generate_jwt_token(user_email, client_identifier)\n \n auth_result = gather(auth_task, 3000)\n jwt_result = gather(jwt_task, 2000)\n \n variableFromJSON(auth_result, \"is_valid\", user_authenticated)\n variableFromJSON(auth_result, \"user_id\", authenticated_user_id)\n \n if(user_authenticated, \"true\", \"==\")\n variableFromJSON(jwt_result, \"token\", access_token)\n variableFromJSON(jwt_result, \"expires_at\", token_expiration)\n \n audit_data = log_authentication_attempt(user_email, \"SUCCESS\", current_timestamp, db_connector)\n \n addVar(response_data, \"{}\")\n AddVariableToJSON(\"status\", \"authenticated\", response_data)\n AddVariableToJSON(\"user_id\", authenticated_user_id, response_data)\n AddVariableToJSON(\"access_token\", access_token, response_data)\n AddVariableToJSON(\"expires_at\", token_expiration, response_data)\n AddVariableToJSON(\"timestamp\", current_timestamp, response_data)\n \n _status = 200\n addResult(response_data)\n else()\n audit_data = log_authentication_attempt(user_email, \"FAILED\", current_timestamp, db_connector)\n \n _status = 401\n addVar(auth_failed, \"Invalid credentials\")\n addResult(auth_failed)\n end()\n exception(auth_error)\n addVar(system_error, \"Authentication service unavailable\")\n _status = 503\n addResult(system_error)\n end()\n end()\nend()\n\nfunction authenticate_user(email, password_hash, connector)\n{\n ormAccessSelect(\"*\", \"users\", \"email = '\" + email + \"' AND password_hash = '\" + password_hash + \"'\", user_records)\n \n getListLen(user_records, records_count)\n \n addVar(auth_response, \"{}\")\n \n if(records_count, 0, \">\")\n itemFromList(user_records, 0, user_record)\n variableFromJSON(user_record, \"id\", user_id)\n variableFromJSON(user_record, \"status\", account_status)\n \n if(account_status, \"active\", \"==\")\n AddVariableToJSON(\"is_valid\", \"true\", auth_response)\n AddVariableToJSON(\"user_id\", user_id, auth_response)\n else()\n AddVariableToJSON(\"is_valid\", \"false\", auth_response)\n AddVariableToJSON(\"reason\", \"account_disabled\", auth_response)\n end()\n else()\n AddVariableToJSON(\"is_valid\", \"false\", auth_response)\n AddVariableToJSON(\"reason\", \"invalid_credentials\", auth_response)\n end()\n \n return(auth_response)\n}\n\nfunction generate_jwt_token(email, client_id)\n{\n jwt_connector = avapConnector(\"jwt-service-uuid-67890\")\n \n addVar(token_payload, \"{}\")\n AddVariableToJSON(\"email\", email, token_payload)\n AddVariableToJSON(\"client_id\", client_id, token_payload)\n AddVariableToJSON(\"iat\", \"1640995200\", token_payload)\n \n getTimeStamp(\"2024-12-31 23:59:59\", \"%Y-%m-%d %H:%M:%S\", 0, expiration_timestamp)\n AddVariableToJSON(\"exp\", expiration_timestamp, token_payload)\n \n token_response = jwt_connector.create_token(token_payload)\n \n return(token_response)\n}\n\nfunction log_authentication_attempt(email, status, timestamp, connector)\n{\n encodeMD5(email, email_hash)\n \n addVar(audit_record, \"{}\")\n AddVariableToJSON(\"email_hash\", email_hash, audit_record)\n AddVariableToJSON(\"attempt_status\", status, audit_record)\n AddVariableToJSON(\"timestamp\", timestamp, audit_record)\n AddVariableToJSON(\"ip_address\", \"127.0.0.1\", audit_record)\n \n ormAccessInsert(audit_record, \"auth_audit_log\", insert_result)\n \n return(insert_result)\n}",
"test_inputs": {
"email": "user@example.com",
"password": "securepass123",
"client_id": "web_app_001"
},
"test_list": [
"re.match(r'.*authenticated.*', str(response_data))",
"re.match(r'.*access_token.*', str(response_data))",
"re.match(r'.*user_id.*', str(response_data))"
],
"_detected": [
"AddVariableToJSON",
"_status",
"addParam",
"addResult",
"addVar",
"avapConnector",
"else",
"encodeMD5",
"encodeSHA256",
"end",
"function",
"gather",
"getDateTime",
"getListLen",
"getTimeStamp",
"if_mode2",
"itemFromList",
"ormAccessInsert",
"ormAccessSelect",
"return",
"try",
"variableFromJSON"
],
"_reward": {
"ecs": 0.579,
"novelty": 0.444,
"test_quality": 1.0,
"reward": 0.595,
"detected": [
"AddVariableToJSON",
"_status",
"addParam",
"addResult",
"addVar",
"avapConnector",
"else",
"encodeMD5",
"encodeSHA256",
"end",
"function",
"gather",
"getDateTime",
"getListLen",
"getTimeStamp",
"if_mode2",
"itemFromList",
"ormAccessInsert",
"ormAccessSelect",
"return",
"try",
"variableFromJSON"
]
}
},
{
"task_id": 3,
"text": "Desarrollar un microservicio de gestión de inventario que reciba datos de productos mediante POST, valide la estructura de la base de datos, actualice el stock de productos existentes, registre movimientos de inventario en una tabla de auditoría, genere códigos de barras aleatorios para productos nuevos, y sincronice los cambios con un sistema externo de terceros. El servicio debe manejar múltiples productos concurrentemente, validar límites de stock, registrar timestamps de las operaciones, y retornar un reporte detallado con el estado de cada operación.",
"code": "include \"config/database_settings.avap\"\nimport \"inventory_utils\"\n\naddParam(\"products\", product_data)\naddParam(\"warehouse_id\", warehouse)\naddParam(\"operation_type\", operation)\n\nif(None, None, `product_data is None or warehouse is None`)\n _status = 400\n addVar(error_msg, \"Missing required parameters\")\n addResult(error_msg)\nelse()\n db_connector = avapConnector(\"inventory-db-uuid-54321\")\n \n ormCheckTable(\"products\", table_exists)\n \n if(table_exists, \"true\", \"==\")\n try()\n variableFromJSON(product_data, \"items\", items_list)\n getListLen(items_list, total_items)\n \n addVar(processed_items, \"[]\")\n addVar(success_count, 0)\n addVar(error_count, 0)\n \n startLoop(i, 0, total_items)\n itemFromList(items_list, i, current_item)\n \n process_task = go process_inventory_item(current_item, warehouse, operation, db_connector)\n sync_task = go sync_with_external_system(current_item)\n \n item_result = gather(process_task, 4000)\n sync_result = gather(sync_task, 3000)\n \n variableFromJSON(item_result, \"status\", item_status)\n \n if(item_status, \"success\", \"==\")\n success_count = success_count + 1\n \n variableFromJSON(item_result, \"product_id\", product_id)\n variableFromJSON(item_result, \"new_stock\", updated_stock)\n \n addVar(processed_item, \"{}\")\n AddVariableToJSON(\"product_id\", product_id, processed_item)\n AddVariableToJSON(\"status\", \"updated\", processed_item)\n AddVariableToJSON(\"stock_level\", updated_stock, processed_item)\n \n if(None, None, `sync_result is not None`)\n variableFromJSON(sync_result, \"external_id\", ext_id)\n AddVariableToJSON(\"external_sync_id\", ext_id, processed_item)\n end()\n else()\n error_count = error_count + 1\n \n addVar(error_item, \"{}\")\n variableFromJSON(item_result, \"error\", error_detail)\n AddVariableToJSON(\"status\", \"error\", error_item)\n AddVariableToJSON(\"message\", error_detail, error_item)\n end()\n endLoop()\n \n getDateTime(\"%Y-%m-%d %H:%M:%S\", 0, \"UTC\", operation_timestamp)\n \n addVar(final_response, \"{}\")\n AddVariableToJSON(\"operation_timestamp\", operation_timestamp, final_response)\n AddVariableToJSON(\"warehouse_id\", warehouse, final_response)\n AddVariableToJSON(\"total_processed\", total_items, final_response)\n AddVariableToJSON(\"successful_updates\", success_count, final_response)\n AddVariableToJSON(\"failed_updates\", error_count, final_response)\n AddVariableToJSON(\"processed_items\", processed_items, final_response)\n \n if(success_count, 0, \">\")\n _status = 200\n addResult(final_response)\n else()\n _status = 422\n addVar(process_error, \"No items could be processed\")\n addResult(process_error)\n end()\n exception(system_error)\n _status = 500\n addVar(exception_msg, \"Database operation failed\")\n addResult(exception_msg)\n end()\n else()\n _status = 503\n addVar(table_error, \"Products table not available\")\n addResult(table_error)\n end()\nend()\n\nfunction process_inventory_item(item, warehouse_id, op_type, connector)\n{\n variableFromJSON(item, \"sku\", product_sku)\n variableFromJSON(item, \"quantity\", quantity_change)\n \n ormAccessSelect(\"*\", \"products\", \"sku = '\" + product_sku + \"' AND warehouse_id = '\" + warehouse_id + \"'\", existing_products)\n \n getListLen(existing_products, product_count)\n \n addVar(result, \"{}\")\n \n if(product_count, 0, \">\")\n itemFromList(existing_products, 0, product_record)\n variableFromJSON(product_record, \"id\", product_id)\n variableFromJSON(product_record, \"current_stock\", current_stock)\n \n if(op_type, \"add\", \"==\")\n new_stock = current_stock + quantity_change\n else()\n new_stock = current_stock - quantity_change\n end()\n \n if(new_stock, 0, \">=\")\n addVar(update_data, \"{}\")\n AddVariableToJSON(\"current_stock\", new_stock, update_data)\n \n ormAccessUpdate(\"current_stock\", update_data, \"products\", \"id = \" + product_id, update_result)\n \n log_inventory_movement(product_id, op_type, quantity_change, warehouse_id, connector)\n \n AddVariableToJSON(\"status\", \"success\", result)\n AddVariableToJSON(\"product_id\", product_id, result)\n AddVariableToJSON(\"new_stock\", new_stock, result)\n else()\n AddVariableToJSON(\"status\", \"error\", result)\n AddVariableToJSON(\"error\", \"Insufficient stock\", result)\n end()\n else()\n randomString(\"[0-9]{12}\", 12, barcode)\n \n addVar(new_product, \"{}\")\n AddVariableToJSON(\"sku\", product_sku, new_product)\n AddVariableToJSON(\"warehouse_id\", warehouse_id, new_product)\n AddVariableToJSON(\"current_stock\", quantity_change, new_product)\n AddVariableToJSON(\"barcode\", barcode, new_product)\n \n ormAccessInsert(new_product, \"products\", insert_result)\n \n AddVariableToJSON(\"status\", \"success\", result)\n AddVariableToJSON(\"action\", \"created\", result)\n AddVariableToJSON(\"barcode\", barcode, result)\n end()\n \n return(result)\n}\n\nfunction sync_with_external_system(item)\n{\n external_connector = avapConnector(\"external-inventory-uuid-98765\")\n \n addVar(sync_payload, \"{}\")\n variableFromJSON(item, \"sku\", item_sku)\n AddVariableToJSON(\"sku\", item_sku, sync_payload)\n AddVariableToJSON(\"action\", \"inventory_update\", sync_payload)\n \n sync_response = external_connector.update_inventory(sync_payload)\n \n return(sync_response)\n}\n\nfunction log_inventory_movement(product_id, movement_type, quantity, warehouse_id, connector)\n{\n getDateTime(\"%Y-%m-%d %H:%M:%S\", 0, \"UTC\", movement_timestamp)\n \n addVar(audit_record, \"{}\")\n AddVariableToJSON(\"product_id\", product_id, audit_record)\n AddVariableToJSON(\"movement_type\", movement_type, audit_record)\n AddVariableToJSON(\"quantity_changed\", quantity, audit_record)\n AddVariableToJSON(\"warehouse_id\", warehouse_id, audit_record)\n AddVariableToJSON(\"timestamp\", movement_timestamp, audit_record)\n \n ormAccessInsert(audit_record, \"inventory_movements\", audit_result)\n \n return(audit_result)\n}",
"test_inputs": {
"products": "{\"items\": [{\"sku\": \"TEST-001\", \"quantity\": 50}]}",
"warehouse_id": "WH-001",
"operation_type": "add"
},
"test_list": [
"re.match(r'.*operation_timestamp.*', str(response))",
"re.match(r'.*successful_updates.*', str(response))",
"re.match(r'.*warehouse_id.*WH-001.*', str(response))"
],
"_detected": [
"AddVariableToJSON",
"_status",
"addParam",
"addResult",
"addVar",
"avapConnector",
"else",
"end",
"endLoop",
"function",
"gather",
"getDateTime",
"getListLen",
"if_mode2",
"import",
"itemFromList",
"ormAccessInsert",
"ormAccessSelect",
"ormAccessUpdate",
"ormCheckTable",
"randomString",
"return",
"startLoop",
"try",
"variableFromJSON"
],
"_reward": {
"ecs": 0.658,
"novelty": 0.321,
"test_quality": 1.0,
"reward": 0.591,
"detected": [
"AddVariableToJSON",
"_status",
"addParam",
"addResult",
"addVar",
"avapConnector",
"else",
"end",
"endLoop",
"function",
"gather",
"getDateTime",
"getListLen",
"if_mode2",
"import",
"itemFromList",
"ormAccessInsert",
"ormAccessSelect",
"ormAccessUpdate",
"ormCheckTable",
"randomString",
"return",
"startLoop",
"try",
"variableFromJSON"
]
}
},
{
"task_id": 4,
"text": "Desarrollar un microservicio de procesamiento de pagos que reciba datos de transacciones mediante POST, valide los parámetros usando expresiones regulares, consulte el historial de transacciones del usuario mediante SQL directo, envíe notificaciones push a sistemas externos, convierta timestamps entre formatos, registre eventos en una tabla de auditoría, y procese múltiples pagos concurrentemente. El servicio debe manejar errores de conexión, generar códigos de autorización aleatorios, y retornar estadísticas detalladas del procesamiento.",
"code": "include \"config/payment_settings.avap\"\nimport \"validation_utils\"\n\naddParam(\"transaction_data\", tx_data)\naddParam(\"user_id\", user_identifier)\naddParam(\"batch_size\", batch_limit)\n\nif(None, None, `tx_data is None or user_identifier is None`)\n _status = 400\n addVar(error_response, \"Missing required transaction data\")\n addResult(error_response)\nelse()\n getRegex(user_identifier, \"^[0-9]{6,12}$\", valid_user_id)\n \n if(valid_user_id, None, \"!=\")\n payment_connector = avapConnector(\"payment-gateway-uuid-11111\")\n db_connector = avapConnector(\"payments-db-uuid-22222\")\n \n try()\n variableFromJSON(tx_data, \"transactions\", tx_list)\n getListLen(tx_list, total_transactions)\n \n addVar(processed_results, \"[]\")\n addVar(success_count, 0)\n addVar(failed_count, 0)\n \n ormDirect(\"SELECT COUNT(*) as user_tx_count FROM transactions WHERE user_id = %s AND created_at > DATE_SUB(NOW(), INTERVAL 24 HOUR)\" % user_identifier, daily_tx_check)\n \n variableFromJSON(daily_tx_check, \"user_tx_count\", daily_count)\n \n if(daily_count, 50, \"<\")\n startLoop(i, 0, total_transactions)\n itemFromList(tx_list, i, current_tx)\n \n payment_task = go process_payment_transaction(current_tx, user_identifier, payment_connector)\n notification_task = go send_payment_notification(current_tx, user_identifier)\n \n payment_result = gather(payment_task, 8000)\n notification_result = gather(notification_task, 3000)\n \n variableFromJSON(payment_result, \"status\", tx_status)\n \n if(tx_status, \"approved\", \"==\")\n success_count = success_count + 1\n \n variableFromJSON(payment_result, \"transaction_id\", tx_id)\n variableFromJSON(payment_result, \"timestamp\", tx_timestamp)\n \n stampToDatetime(tx_timestamp, \"%Y-%m-%d %H:%M:%S\", 0, formatted_time)\n \n addVar(success_record, \"{}\")\n AddVariableToJSON(\"transaction_id\", tx_id, success_record)\n AddVariableToJSON(\"status\", \"completed\", success_record)\n AddVariableToJSON(\"processed_at\", formatted_time, success_record)\n \n audit_task = go log_payment_audit(tx_id, \"SUCCESS\", user_identifier, db_connector)\n audit_result = gather(audit_task, 2000)\n else()\n failed_count = failed_count + 1\n \n addVar(failed_record, \"{}\")\n variableFromJSON(payment_result, \"error_code\", error_code)\n AddVariableToJSON(\"status\", \"failed\", failed_record)\n AddVariableToJSON(\"error_code\", error_code, failed_record)\n \n audit_task = go log_payment_audit(\"UNKNOWN\", \"FAILED\", user_identifier, db_connector)\n audit_result = gather(audit_task, 2000)\n end()\n endLoop()\n \n getDateTime(\"%Y-%m-%d %H:%M:%S\", 0, \"UTC\", processing_timestamp)\n \n addVar(final_response, \"{}\")\n AddVariableToJSON(\"processing_timestamp\", processing_timestamp, final_response)\n AddVariableToJSON(\"user_id\", user_identifier, final_response)\n AddVariableToJSON(\"total_processed\", total_transactions, final_response)\n AddVariableToJSON(\"successful_payments\", success_count, final_response)\n AddVariableToJSON(\"failed_payments\", failed_count, final_response)\n \n if(success_count, 0, \">\")\n _status = 200\n addResult(final_response)\n else()\n _status = 422\n addVar(process_error, \"All payment transactions failed\")\n addResult(process_error)\n end()\n else()\n _status = 429\n addVar(limit_error, \"Daily transaction limit exceeded\")\n addResult(limit_error)\n end()\n exception(system_error)\n _status = 503\n addVar(exception_message, \"Payment processing service unavailable\")\n addResult(exception_message)\n end()\n else()\n _status = 422\n addVar(validation_error, \"Invalid user ID format\")\n addResult(validation_error)\n end()\nend()\n\nfunction process_payment_transaction(transaction, user_id, connector)\n{\n variableFromJSON(transaction, \"amount\", payment_amount)\n variableFromJSON(transaction, \"currency\", payment_currency)\n variableFromJSON(transaction, \"card_token\", card_token)\n \n randomString(\"[A-Z0-9]{16}\", 16, auth_code)\n \n addVar(payment_request, \"{}\")\n AddVariableToJSON(\"amount\", payment_amount, payment_request)\n AddVariableToJSON(\"currency\", payment_currency, payment_request)\n AddVariableToJSON(\"card_token\", card_token, payment_request)\n AddVariableToJSON(\"user_id\", user_id, payment_request)\n AddVariableToJSON(\"authorization_code\", auth_code, payment_request)\n \n payment_response = connector.process_payment(payment_request)\n \n return(payment_response)\n}\n\nfunction send_payment_notification(transaction, user_id)\n{\n addVar(notification_headers, \"{}\")\n AddVariableToJSON(\"Content-Type\", \"application/json\", notification_headers)\n AddVariableToJSON(\"Authorization\", \"Bearer notify-token-12345\", notification_headers)\n \n addVar(notification_body, \"{}\")\n AddVariableToJSON(\"user_id\", user_id, notification_body)\n AddVariableToJSON(\"event_type\", \"payment_processing\", notification_body)\n variableFromJSON(transaction, \"amount\", tx_amount)\n AddVariableToJSON(\"amount\", tx_amount, notification_body)\n \n RequestPost(\"https://notifications.example.com/push\", \"\", notification_headers, notification_body, notify_result, 5000)\n \n return(notify_result)\n}\n\nfunction log_payment_audit(transaction_id, status, user_id, connector)\n{\n getTimeStamp(\"2024-01-01 00:00:00\", \"%Y-%m-%d %H:%M:%S\", 0, base_timestamp)\n \n addVar(audit_data, \"{}\")\n AddVariableToJSON(\"transaction_id\", transaction_id, audit_data)\n AddVariableToJSON(\"status\", status, audit_data)\n AddVariableToJSON(\"user_id\", user_id, audit_data)\n AddVariableToJSON(\"audit_timestamp\", base_timestamp, audit_data)\n \n ormAccessInsert(audit_data, \"payment_audit_log\", insert_result)\n \n return(insert_result)\n}",
"test_inputs": {
"transaction_data": "{\"transactions\": [{\"amount\": 100.50, \"currency\": \"USD\", \"card_token\": \"card_abc123\"}]}",
"user_id": "123456789",
"batch_size": "10"
},
"test_list": [
"re.match(r'\\{.*\"processing_timestamp\".*\\}', final_response)",
"re.match(r'^[0-9]{6,12}$', user_identifier)",
"re.match(r'200|422|429', str(_status))"
],
"_detected": [
"AddVariableToJSON",
"RequestPost",
"_status",
"addParam",
"addResult",
"addVar",
"avapConnector",
"else",
"end",
"endLoop",
"function",
"gather",
"getDateTime",
"getListLen",
"getTimeStamp",
"if_mode2",
"import",
"itemFromList",
"ormAccessInsert",
"ormDirect",
"randomString",
"return",
"stampToDatetime",
"startLoop",
"try",
"variableFromJSON"
],
"_reward": {
"ecs": 0.684,
"novelty": 0.241,
"test_quality": 1.0,
"reward": 0.577,
"detected": [
"AddVariableToJSON",
"RequestPost",
"_status",
"addParam",
"addResult",
"addVar",
"avapConnector",
"else",
"end",
"endLoop",
"function",
"gather",
"getDateTime",
"getListLen",
"getTimeStamp",
"if_mode2",
"import",
"itemFromList",
"ormAccessInsert",
"ormDirect",
"randomString",
"return",
"stampToDatetime",
"startLoop",
"try",
"variableFromJSON"
]
}
},
{
"task_id": 5,
"text": "Desarrollar un microservicio de procesamiento de documentos que reciba múltiples archivos de texto, los descargue desde URLs externas, procese su contenido para extraer información específica mediante expresiones regulares, valide la integridad usando hashes MD5, sincronice los resultados con un sistema de terceros, y registre todas las operaciones en una tabla de auditoría. El servicio debe manejar errores de descarga, validar formatos de archivos, aplicar transformaciones de texto, y retornar un reporte detallado con estadísticas de procesamiento.",
"code": "include \"config/document_settings.avap\"\nimport \"text_processing_utils\"\n\ngetQueryParamList(\"doc_urls\", document_urls)\naddParam(\"format_type\", expected_format)\naddParam(\"validation_key\", client_key)\n\ngetListLen(document_urls, total_documents)\n\nif(total_documents, 0, \"==\")\n _status = 400\n addVar(error_msg, \"No document URLs provided\")\n addResult(error_msg)\nelse()\n db_connector = avapConnector(\"doc-processing-db-uuid-11223\")\n \n ormCheckTable(\"document_audit\", audit_table_exists)\n \n if(audit_table_exists, \"false\", \"==\")\n _status = 503\n addVar(table_error, \"Audit system unavailable\")\n addResult(table_error)\n else()\n try()\n addVar(processed_count, 0)\n addVar(failed_count, 0)\n addVar(processed_documents, \"[]\")\n addVar(validation_results, \"{}\")\n \n startLoop(i, 0, total_documents)\n itemFromList(document_urls, i, current_url)\n \n download_task = go download_document(current_url)\n validation_task = go validate_document_format(current_url, expected_format)\n \n document_content = gather(download_task, 8000)\n format_validation = gather(validation_task, 3000)\n \n variableFromJSON(format_validation, \"is_valid\", format_is_valid)\n \n if(format_is_valid, \"true\", \"==\")\n if(None, None, `document_content is not None`)\n processed_doc = process_document_content(document_content, i)\n variableFromJSON(processed_doc, \"status\", doc_status)\n \n if(doc_status, \"success\", \"==\")\n processed_count = processed_count + 1\n \n variableFromJSON(processed_doc, \"extracted_data\", extracted_info)\n variableFromJSON(processed_doc, \"md5_hash\", content_hash)\n \n sync_task = go sync_with_external_system(extracted_info, content_hash)\n sync_result = gather(sync_task, 4000)\n \n getDateTime(\"%Y-%m-%d %H:%M:%S\", 0, \"UTC\", process_timestamp)\n \n audit_record = log_processing_attempt(current_url, \"PROCESSED\", process_timestamp, content_hash, db_connector)\n \n addVar(doc_result, \"{}\")\n AddVariableToJSON(\"url\", current_url, doc_result)\n AddVariableToJSON(\"status\", \"processed\", doc_result)\n AddVariableToJSON(\"hash\", content_hash, doc_result)\n AddVariableToJSON(\"timestamp\", process_timestamp, doc_result)\n \n if(None, None, `sync_result is not None`)\n variableFromJSON(sync_result, \"external_id\", ext_id)\n AddVariableToJSON(\"external_sync_id\", ext_id, doc_result)\n end()\n else()\n failed_count = failed_count + 1\n \n getDateTime(\"%Y-%m-%d %H:%M:%S\", 0, \"UTC\", error_timestamp)\n audit_record = log_processing_attempt(current_url, \"FAILED\", error_timestamp, \"unknown\", db_connector)\n end()\n else()\n failed_count = failed_count + 1\n end()\n else()\n failed_count = failed_count + 1\n end()\n endLoop()\n \n total_processed = processed_count + failed_count\n success_rate = (processed_count * 100) / total_processed\n \n addVar(final_report, \"{}\")\n AddVariableToJSON(\"total_documents\", total_documents, final_report)\n AddVariableToJSON(\"successfully_processed\", processed_count, final_report)\n AddVariableToJSON(\"failed_processing\", failed_count, final_report)\n AddVariableToJSON(\"success_rate_percent\", success_rate, final_report)\n AddVariableToJSON(\"processed_documents\", processed_documents, final_report)\n AddVariableToJSON(\"validation_results\", validation_results, final_report)\n \n if(processed_count, 0, \">\")\n _status = 200\n addResult(final_report)\n else()\n _status = 422\n addVar(no_success_error, \"No documents could be processed\")\n addResult(no_success_error)\n end()\n exception(system_error)\n _status = 500\n addVar(exception_message, \"Document processing system failed\")\n addResult(exception_message)\n end()\n end()\nend()\n\nfunction download_document(url)\n{\n addVar(headers, \"{}\")\n AddVariableToJSON(\"Accept\", \"text/plain,application/pdf\", headers)\n AddVariableToJSON(\"User-Agent\", \"AVAP-DocumentProcessor/2.0\", headers)\n \n try()\n RequestGet(url, \"\", headers, response_content, 10000)\n return(response_content)\n exception(download_error)\n return(None)\n end()\n}\n\nfunction validate_document_format(url, expected_format)\n{\n addVar(validation_result, \"{}\")\n \n getRegex(url, \"\\\\.(txt|pdf|docx)$\", file_extension)\n \n if(None, None, `file_extension is not None`)\n if(file_extension, expected_format, \"==\")\n AddVariableToJSON(\"is_valid\", \"true\", validation_result)\n AddVariableToJSON(\"detected_format\", file_extension, validation_result)\n else()\n AddVariableToJSON(\"is_valid\", \"false\", validation_result)\n AddVariableToJSON(\"reason\", \"format_mismatch\", validation_result)\n end()\n else()\n AddVariableToJSON(\"is_valid\", \"false\", validation_result)\n AddVariableToJSON(\"reason\", \"unknown_format\", validation_result)\n end()\n \n return(validation_result)\n}\n\nfunction process_document_content(content, doc_index)\n{\n addVar(processing_result, \"{}\")\n \n encodeMD5(content, content_md5)\n \n replace(content, \"\\\\n\", \" \", normalized_content)\n replace(normalized_content, \"\\\\t\", \" \", clean_content)\n \n getRegex(clean_content, \"([A-Z][a-z]+ [A-Z][a-z]+)\", extracted_names)\n getRegex(clean_content, \"([0-9]{4}-[0-9]{2}-[0-9]{2})\", extracted_dates)\n getRegex(clean_content, \"([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\\\.[a-zA-Z]{2,})\", extracted_emails)\n \n if(None, None, `extracted_names is not None or extracted_dates is not None`)\n addVar(extracted_data, \"{}\")\n AddVariableToJSON(\"names\", extracted_names, extracted_data)\n AddVariableToJSON(\"dates\", extracted_dates, extracted_data)\n AddVariableToJSON(\"emails\", extracted_emails, extracted_data)\n AddVariableToJSON(\"document_index\", doc_index, extracted_data)\n \n AddVariableToJSON(\"status\", \"success\", processing_result)\n AddVariableToJSON(\"extracted_data\", extracted_data, processing_result)\n AddVariableToJSON(\"md5_hash\", content_md5, processing_result)\n else()\n AddVariableToJSON(\"status\", \"failed\", processing_result)\n AddVariableToJSON(\"error\", \"no_extractable_data\", processing_result)\n end()\n \n return(processing_result)\n}\n\nfunction sync_with_external_system(data, hash)\n{\n external_connector = avapConnector(\"external-docs-uuid-99887\")\n \n addVar(sync_payload, \"{}\")\n AddVariableToJSON(\"document_data\", data, sync_payload)\n AddVariableToJSON(\"integrity_hash\", hash, sync_payload)\n AddVariableToJSON(\"action\", \"document_processed\", sync_payload)\n \n sync_response = external_connector.submit_document(sync_payload)\n \n return(sync_response)\n}\n\nfunction log_processing_attempt(url, status, timestamp, hash, connector)\n{\n randomString(\"[A-Z0-9]{8}\", 8, operation_id)\n \n addVar(audit_entry, \"{}\")\n AddVariableToJSON(\"operation_id\", operation_id, audit_entry)\n AddVariableToJSON(\"document_url\", url, audit_entry)\n AddVariableToJSON(\"processing_status\", status, audit_entry)\n AddVariableToJSON(\"timestamp\", timestamp, audit_entry)\n AddVariableToJSON(\"content_hash\", hash, audit_entry)\n \n ormAccessInsert(audit_entry, \"document_audit\", audit_result)\n \n return(audit_result)\n}",
"test_inputs": {
"doc_urls": [
"https://example.com/doc1.txt",
"https://example.com/doc2.txt"
],
"format_type": "txt",
"validation_key": "client123"
},
"test_list": [
"re.match(r'\\d+', str(final_report.get('total_documents', 0)))",
"re.match(r'\\d+', str(final_report.get('successfully_processed', 0)))",
"re.match(r'^(PROCESSED|FAILED)$', audit_entry.get('processing_status', ''))"
],
"_detected": [
"AddVariableToJSON",
"RequestGet",
"_status",
"addParam",
"addResult",
"addVar",
"avapConnector",
"else",
"encodeMD5",
"end",
"endLoop",
"function",
"gather",
"getDateTime",
"getListLen",
"getQueryParamList",
"if_mode2",
"import",
"itemFromList",
"ormAccessInsert",
"ormCheckTable",
"randomString",
"replace",
"return",
"startLoop",
"try",
"variableFromJSON"
],
"_reward": {
"ecs": 0.711,
"novelty": 0.207,
"test_quality": 1.0,
"reward": 0.578,
"detected": [
"AddVariableToJSON",
"RequestGet",
"_status",
"addParam",
"addResult",
"addVar",
"avapConnector",
"else",
"encodeMD5",
"end",
"endLoop",
"function",
"gather",
"getDateTime",
"getListLen",
"getQueryParamList",
"if_mode2",
"import",
"itemFromList",
"ormAccessInsert",
"ormCheckTable",
"randomString",
"replace",
"return",
"startLoop",
"try",
"variableFromJSON"
]
}
},
{
"task_id": 6,
"text": "Desarrollar un microservicio de auditoría financiera que procese transacciones bancarias desde múltiples fuentes, valide cada transacción contra patrones de fraude, actualice balances de cuentas en tiempo real, y genere reportes de compliance. El servicio debe manejar archivos CSV de transacciones, verificar integridad mediante hash SHA256, sincronizar con sistemas externos de validación KYC, registrar todas las operaciones en tablas de auditoría, y manejar errores de conectividad con reintentos automáticos.",
"code": "include \"config/fraud_detection_rules.avap\"\nimport \"compliance_utils\"\n\naddParam(\"transaction_file\", csv_data)\naddParam(\"batch_id\", batch_identifier)\naddParam(\"validation_level\", security_level)\n\nif(csv_data, None, \"!=\")\n encodeSHA256(csv_data, file_hash)\n getDateTime(\"%Y-%m-%d %H:%M:%S\", 0, \"UTC\", process_start)\n \n db_connector = avapConnector(\"audit-db-uuid-11111\")\n \n try()\n ormDirect(\"CREATE TABLE IF NOT EXISTS transaction_audit (id SERIAL, batch_id VARCHAR(50), hash VARCHAR(64), status VARCHAR(20), timestamp TIMESTAMP)\", create_result)\n \n ormCheckTable(\"accounts\", accounts_exist)\n \n if(accounts_exist, \"true\", \"==\")\n variableToList(csv_data, transactions_raw)\n replace(csv_data, \"\\n\", \"|\", normalized_data)\n getRegex(normalized_data, \"([0-9]{10,16}),([0-9\\.]+),(DEBIT|CREDIT)\", transaction_pattern)\n \n variableToList(transaction_pattern, transactions_list)\n getListLen(transactions_list, total_transactions)\n \n addVar(processed_count, 0)\n addVar(fraud_detected, 0)\n addVar(validation_errors, 0)\n addVar(final_report, \"{}\")\n \n startLoop(i, 0, total_transactions)\n itemFromList(transactions_list, i, current_transaction)\n \n validation_task = go validate_transaction_integrity(current_transaction, security_level)\n kyc_task = go verify_kyc_compliance(current_transaction)\n \n validation_result = gather(validation_task, 3000)\n kyc_result = gather(kyc_task, 5000)\n \n variableFromJSON(validation_result, \"is_valid\", transaction_valid)\n variableFromJSON(validation_result, \"account_id\", account_number)\n variableFromJSON(validation_result, \"amount\", transaction_amount)\n variableFromJSON(validation_result, \"type\", operation_type)\n \n if(transaction_valid, \"true\", \"==\")\n variableFromJSON(kyc_result, \"compliance_status\", kyc_status)\n \n if(kyc_status, \"APPROVED\", \"==\")\n ormAccessSelect(\"balance\", \"accounts\", \"account_id = '\" + account_number + \"'\", account_data)\n getListLen(account_data, account_found)\n \n if(account_found, 0, \">\")\n itemFromList(account_data, 0, account_record)\n variableFromJSON(account_record, \"balance\", current_balance)\n \n if(operation_type, \"DEBIT\", \"==\")\n new_balance = current_balance - transaction_amount\n else()\n new_balance = current_balance + transaction_amount\n end()\n \n addVar(balance_update, \"{}\")\n AddVariableToJSON(\"balance\", new_balance, balance_update)\n \n ormAccessUpdate(\"balance\", balance_update, \"accounts\", \"account_id = '\" + account_number + \"'\", update_result)\n \n log_audit_entry(batch_identifier, account_number, transaction_amount, \"SUCCESS\", db_connector)\n processed_count = processed_count + 1\n else()\n log_audit_entry(batch_identifier, account_number, transaction_amount, \"ACCOUNT_NOT_FOUND\", db_connector)\n validation_errors = validation_errors + 1\n end()\n else()\n log_audit_entry(batch_identifier, account_number, transaction_amount, \"KYC_FAILED\", db_connector)\n fraud_detected = fraud_detected + 1\n end()\n else()\n validation_errors = validation_errors + 1\n end()\n endLoop()\n \n getDateTime(\"%Y-%m-%d %H:%M:%S\", 0, \"UTC\", process_end)\n \n AddVariableToJSON(\"batch_id\", batch_identifier, final_report)\n AddVariableToJSON(\"file_hash\", file_hash, final_report)\n AddVariableToJSON(\"total_transactions\", total_transactions, final_report)\n AddVariableToJSON(\"processed_successfully\", processed_count, final_report)\n AddVariableToJSON(\"fraud_detected\", fraud_detected, final_report)\n AddVariableToJSON(\"validation_errors\", validation_errors, final_report)\n AddVariableToJSON(\"process_start_time\", process_start, final_report)\n AddVariableToJSON(\"process_end_time\", process_end, final_report)\n \n external_audit_task = go submit_compliance_report(final_report)\n compliance_response = gather(external_audit_task, 8000)\n \n if(None, None, `compliance_response is not None`)\n variableFromJSON(compliance_response, \"audit_id\", external_audit_id)\n AddVariableToJSON(\"external_audit_id\", external_audit_id, final_report)\n end()\n \n _status = 200\n addResult(final_report)\n else()\n _status = 503\n addVar(db_error, \"Accounts table not available\")\n addResult(db_error)\n end()\n exception(system_error)\n _status = 500\n addVar(exception_msg, \"Financial audit system failure\")\n AddVariableToJSON(\"error_details\", system_error, exception_msg)\n addResult(exception_msg)\n end()\nelse()\n _status = 400\n addVar(missing_data, \"Transaction file data required\")\n addResult(missing_data)\nend()\n\nfunction validate_transaction_integrity(transaction_data, level)\n{\n getRegex(transaction_data, \"([0-9]{10,16}),([0-9\\.]+),(DEBIT|CREDIT)\", parsed_fields)\n \n addVar(validation_response, \"{}\")\n \n if(None, None, `parsed_fields is not None`)\n variableFromJSON(parsed_fields, \"account\", account_id)\n variableFromJSON(parsed_fields, \"amount\", amount_value)\n variableFromJSON(parsed_fields, \"operation\", op_type)\n \n amount_float = float(amount_value)\n \n if(level, \"HIGH\", \"==\")\n max_limit = 100000.0\n else()\n max_limit = 50000.0\n end()\n \n if(None, None, `amount_float > 0 and amount_float <= max_limit`)\n AddVariableToJSON(\"is_valid\", \"true\", validation_response)\n AddVariableToJSON(\"account_id\", account_id, validation_response)\n AddVariableToJSON(\"amount\", amount_float, validation_response)\n AddVariableToJSON(\"type\", op_type, validation_response)\n else()\n AddVariableToJSON(\"is_valid\", \"false\", validation_response)\n AddVariableToJSON(\"reason\", \"amount_out_of_range\", validation_response)\n end()\n else()\n AddVariableToJSON(\"is_valid\", \"false\", validation_response)\n AddVariableToJSON(\"reason\", \"invalid_format\", validation_response)\n end()\n \n return(validation_response)\n}\n\nfunction verify_kyc_compliance(transaction_data)\n{\n kyc_connector = avapConnector(\"kyc-service-uuid-22222\")\n \n addVar(kyc_payload, \"{}\")\n variableFromJSON(transaction_data, \"account\", account_for_kyc)\n AddVariableToJSON(\"account_id\", account_for_kyc, kyc_payload)\n AddVariableToJSON(\"check_type\", \"TRANSACTION_VALIDATION\", kyc_payload)\n \n try()\n kyc_response = kyc_connector.validate_account(kyc_payload)\n return(kyc_response)\n exception(kyc_error)\n addVar(fallback_response, \"{}\")\n AddVariableToJSON(\"compliance_status\", \"ERROR\", fallback_response)\n AddVariableToJSON(\"error\", \"KYC service unavailable\", fallback_response)\n return(fallback_response)\n end()\n}\n\nfunction submit_compliance_report(report_data)\n{\n compliance_connector = avapConnector(\"compliance-api-uuid-33333\")\n \n addVar(headers, \"{}\")\n AddVariableToJSON(\"Content-Type\", \"application/json\", headers)\n AddVariableToJSON(\"Authorization\", \"Bearer compliance-token-xyz\", headers)\n \n RequestPost(\"https://compliance-api.bank.com/audit/submit\", \"\", headers, report_data, compliance_result, 10000)\n \n return(compliance_result)\n}\n\nfunction log_audit_entry(batch_id, account_id, amount, status, connector)\n{\n getDateTime(\"%Y-%m-%d %H:%M:%S\", 0, \"UTC\", audit_timestamp)\n \n addVar(audit_record, \"{}\")\n AddVariableToJSON(\"batch_id\", batch_id, audit_record)\n AddVariableToJSON(\"account_id\", account_id, audit_record)\n AddVariableToJSON(\"amount\", amount, audit_record)\n AddVariableToJSON(\"status\", status, audit_record)\n AddVariableToJSON(\"timestamp\", audit_timestamp, audit_record)\n \n ormAccessInsert(audit_record, \"transaction_audit\", insert_result)\n \n return(insert_result)\n}",
"test_inputs": {
"transaction_file": "1234567890123456,1500.50,DEBIT\\n9876543210987654,2300.75,CREDIT\\n1111222233334444,850.25,DEBIT",
"batch_id": "BATCH_20241215_001",
"validation_level": "HIGH"
},
"test_list": [
"re.match(r'.*batch_id.*BATCH_20241215_001.*', final_report)",
"re.match(r'.*total_transactions.*[1-9].*', final_report)",
"re.match(r'.*file_hash.*[a-f0-9]{64}.*', final_report)"
],
"_detected": [
"AddVariableToJSON",
"RequestPost",
"_status",
"addParam",
"addResult",
"addVar",
"avapConnector",
"else",
"encodeSHA256",
"end",
"endLoop",
"function",
"gather",
"getDateTime",
"getListLen",
"if_mode2",
"import",
"itemFromList",
"ormAccessInsert",
"ormAccessSelect",
"ormAccessUpdate",
"ormCheckTable",
"ormDirect",
"replace",
"return",
"startLoop",
"try",
"variableFromJSON"
],
"_reward": {
"ecs": 0.737,
"novelty": 0.172,
"test_quality": 1.0,
"reward": 0.579,
"detected": [
"AddVariableToJSON",
"RequestPost",
"_status",
"addParam",
"addResult",
"addVar",
"avapConnector",
"else",
"encodeSHA256",
"end",
"endLoop",
"function",
"gather",
"getDateTime",
"getListLen",
"if_mode2",
"import",
"itemFromList",
"ormAccessInsert",
"ormAccessSelect",
"ormAccessUpdate",
"ormCheckTable",
"ormDirect",
"replace",
"return",
"startLoop",
"try",
"variableFromJSON"
]
}
},
{
"task_id": 7,
"text": "Desarrollar un servicio de monitoreo de salud de APIs que reciba una lista de endpoints desde parámetros de query, valide cada URL mediante expresiones regulares, ejecute comprobaciones de salud concurrentes con timeouts configurables, registre los resultados en una base de datos con timestamps convertidos, genere códigos MD5 de identificación únicos para cada comprobación, y sincronice los datos con un sistema externo de alertas. El servicio debe manejar errores de red mediante bloques try/exception, procesar respuestas JSON de los endpoints monitoreados, y retornar un reporte consolidado con estadísticas de disponibilidad y tiempos de respuesta.",
"code": "include \"monitoring/health_config.avap\"\nimport \"response_analyzer\"\n\ngetQueryParamList(\"endpoints\", endpoint_list)\naddParam(\"timeout_ms\", request_timeout)\naddParam(\"alert_threshold\", threshold_value)\n\ngetListLen(endpoint_list, total_endpoints)\n\nif(total_endpoints, 0, \"==\")\n _status = 400\n addVar(error_msg, \"No endpoints provided for monitoring\")\n addResult(error_msg)\nelse()\n db_connector = avapConnector(\"health-monitor-db-uuid-11111\")\n alert_connector = avapConnector(\"alert-system-uuid-22222\")\n \n addVar(monitoring_results, \"[]\")\n addVar(healthy_count, 0)\n addVar(unhealthy_count, 0)\n addVar(timeout_count, 0)\n \n getDateTime(\"%Y-%m-%d %H:%M:%S\", 0, \"UTC\", scan_start_time)\n getTimeStamp(scan_start_time, \"%Y-%m-%d %H:%M:%S\", 0, scan_timestamp)\n \n try()\n startLoop(i, 0, total_endpoints)\n itemFromList(endpoint_list, i, current_endpoint)\n \n getRegex(current_endpoint, \"^https?://[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}(/.*)?$\", url_valid)\n \n if(None, None, `url_valid is not None`)\n health_task = go check_endpoint_health(current_endpoint, request_timeout)\n sync_task = go sync_health_data(current_endpoint, alert_connector)\n \n health_result = gather(health_task, 8000)\n sync_result = gather(sync_task, 3000)\n \n if(None, None, `health_result is not None`)\n variableFromJSON(health_result, \"status\", endpoint_status)\n variableFromJSON(health_result, \"response_time\", response_time)\n variableFromJSON(health_result, \"status_code\", http_code)\n \n encodeMD5(current_endpoint, endpoint_hash)\n stampToDatetime(scan_timestamp, \"%Y-%m-%d %H:%M:%S\", 0, formatted_timestamp)\n \n addVar(health_record, \"{}\")\n AddVariableToJSON(\"endpoint_url\", current_endpoint, health_record)\n AddVariableToJSON(\"endpoint_hash\", endpoint_hash, health_record)\n AddVariableToJSON(\"health_status\", endpoint_status, health_record)\n AddVariableToJSON(\"response_time_ms\", response_time, health_record)\n AddVariableToJSON(\"http_status_code\", http_code, health_record)\n AddVariableToJSON(\"checked_at\", formatted_timestamp, health_record)\n \n if(endpoint_status, \"healthy\", \"==\")\n healthy_count = healthy_count + 1\n else()\n if(endpoint_status, \"timeout\", \"==\")\n timeout_count = timeout_count + 1\n else()\n unhealthy_count = unhealthy_count + 1\n end()\n end()\n \n ormAccessInsert(health_record, \"health_checks\", insert_result)\n else()\n timeout_count = timeout_count + 1\n end()\n else()\n unhealthy_count = unhealthy_count + 1\n end()\n endLoop()\n \n addVar(summary_report, \"{}\")\n AddVariableToJSON(\"scan_timestamp\", scan_start_time, summary_report)\n AddVariableToJSON(\"total_endpoints\", total_endpoints, summary_report)\n AddVariableToJSON(\"healthy_endpoints\", healthy_count, summary_report)\n AddVariableToJSON(\"unhealthy_endpoints\", unhealthy_count, summary_report)\n AddVariableToJSON(\"timeout_endpoints\", timeout_count, summary_report)\n \n availability_percentage = (healthy_count * 100) / total_endpoints\n AddVariableToJSON(\"availability_percentage\", availability_percentage, summary_report)\n \n if(healthy_count, 0, \">\")\n _status = 200\n addResult(summary_report)\n else()\n _status = 503\n addVar(all_down_msg, \"All monitored endpoints are unavailable\")\n addResult(all_down_msg)\n end()\n exception(monitoring_error)\n _status = 500\n addVar(exception_msg, \"Health monitoring system failure\")\n addResult(exception_msg)\n end()\nend()\n\nfunction check_endpoint_health(endpoint_url, timeout_ms)\n{\n addVar(headers, \"{}\")\n AddVariableToJSON(\"User-Agent\", \"HealthMonitor/1.0\", headers)\n AddVariableToJSON(\"Accept\", \"application/json\", headers)\n \n getDateTime(\"%Y-%m-%d %H:%M:%S.%f\", 0, \"UTC\", start_time)\n \n try()\n RequestGet(endpoint_url, \"\", headers, response_data, timeout_ms)\n \n getDateTime(\"%Y-%m-%d %H:%M:%S.%f\", 0, \"UTC\", end_time)\n getTimeStamp(end_time, \"%Y-%m-%d %H:%M:%S.%f\", 0, end_timestamp)\n getTimeStamp(start_time, \"%Y-%m-%d %H:%M:%S.%f\", 0, start_timestamp)\n \n response_time = end_timestamp - start_timestamp\n \n addVar(health_response, \"{}\")\n \n if(None, None, `response_data is not None`)\n variableFromJSON(response_data, \"status\", api_status)\n \n if(None, None, `\"200\" in str(response_data)`)\n AddVariableToJSON(\"status\", \"healthy\", health_response)\n AddVariableToJSON(\"status_code\", 200, health_response)\n else()\n AddVariableToJSON(\"status\", \"unhealthy\", health_response)\n AddVariableToJSON(\"status_code\", 500, health_response)\n end()\n else()\n AddVariableToJSON(\"status\", \"timeout\", health_response)\n AddVariableToJSON(\"status_code\", 0, health_response)\n end()\n \n AddVariableToJSON(\"response_time\", response_time, health_response)\n return(health_response)\n exception(request_error)\n addVar(error_response, \"{}\")\n AddVariableToJSON(\"status\", \"error\", error_response)\n AddVariableToJSON(\"status_code\", 0, error_response)\n AddVariableToJSON(\"response_time\", 0, error_response)\n return(error_response)\n end()\n}\n\nfunction sync_health_data(endpoint_url, alert_connector)\n{\n addVar(alert_payload, \"{}\")\n AddVariableToJSON(\"endpoint\", endpoint_url, alert_payload)\n AddVariableToJSON(\"monitor_type\", \"health_check\", alert_payload)\n AddVariableToJSON(\"severity\", \"info\", alert_payload)\n \n alert_response = alert_connector.send_health_update(alert_payload)\n \n return(alert_response)\n}",
"test_inputs": {
"endpoints": [
"https://api.github.com",
"https://httpbin.org/status/200"
],
"timeout_ms": 5000,
"alert_threshold": 500
},
"test_list": [
"re.match(r'.*healthy_endpoints.*', summary_report)",
"re.match(r'.*availability_percentage.*', summary_report)",
"re.match(r'.*scan_timestamp.*', summary_report)"
],
"_detected": [
"AddVariableToJSON",
"RequestGet",
"_status",
"addParam",
"addResult",
"addVar",
"avapConnector",
"else",
"encodeMD5",
"end",
"endLoop",
"function",
"gather",
"getDateTime",
"getListLen",
"getQueryParamList",
"getTimeStamp",
"if_mode2",
"import",
"itemFromList",
"ormAccessInsert",
"return",
"stampToDatetime",
"startLoop",
"try",
"variableFromJSON"
],
"_reward": {
"ecs": 0.684,
"novelty": 0.172,
"test_quality": 1.0,
"reward": 0.552,
"detected": [
"AddVariableToJSON",
"RequestGet",
"_status",
"addParam",
"addResult",
"addVar",
"avapConnector",
"else",
"encodeMD5",
"end",
"endLoop",
"function",
"gather",
"getDateTime",
"getListLen",
"getQueryParamList",
"getTimeStamp",
"if_mode2",
"import",
"itemFromList",
"ormAccessInsert",
"return",
"stampToDatetime",
"startLoop",
"try",
"variableFromJSON"
]
}
},
{
"task_id": 8,
"text": "Desarrollar un microservicio de procesamiento de transacciones financieras que reciba datos de múltiples transacciones mediante POST, valide los montos contra límites configurados en archivos incluidos, calcule hashes SHA256 para auditoría, registre las operaciones en base de datos usando SQL directo para consultas complejas, actualice saldos de cuentas mediante ORM, maneje excepciones de conectividad, procese notificaciones concurrentemente usando gorrutinas, y retorne un reporte detallado. El servicio debe validar formatos de números de cuenta, aplicar comisiones según el tipo de transacción, registrar timestamps de procesamiento, y sincronizar con sistemas bancarios externos.",
"code": "include \"config/transaction_limits.avap\"\nimport \"banking_utils\"\n\naddParam(\"transactions\", transaction_data)\naddParam(\"account_id\", source_account)\naddParam(\"transaction_type\", tx_type)\n\nif(transaction_data, None, \"!=\")\n db_connector = avapConnector(\"banking-db-uuid-98765\")\n \n try()\n variableFromJSON(transaction_data, \"items\", tx_list)\n getListLen(tx_list, total_transactions)\n \n addVar(processed_count, 0)\n addVar(failed_count, 0)\n addVar(total_amount, 0)\n addVar(processing_results, \"[]\")\n \n startLoop(i, 0, total_transactions)\n itemFromList(tx_list, i, current_tx)\n \n variableFromJSON(current_tx, \"amount\", tx_amount)\n variableFromJSON(current_tx, \"recipient_account\", recipient)\n variableFromJSON(current_tx, \"description\", tx_description)\n \n if(tx_amount, 10000, \">\")\n addVar(validation_error, \"Amount exceeds limit\")\n failed_count = failed_count + 1\n else()\n encodeSHA256(tx_description, description_hash)\n getDateTime(\"%Y-%m-%d %H:%M:%S\", 0, \"UTC\", processing_timestamp)\n \n notification_task = go send_transaction_notification(recipient, tx_amount, processing_timestamp)\n validation_task = go validate_account_balance(source_account, tx_amount, db_connector)\n \n validation_result = gather(validation_task, 3000)\n notification_result = gather(notification_task, 2000)\n \n variableFromJSON(validation_result, \"is_valid\", balance_valid)\n \n if(balance_valid, \"true\", \"==\")\n commission_rate = calculate_commission(tx_type, tx_amount)\n final_amount = tx_amount + commission_rate\n \n ormDirect(\"UPDATE accounts SET balance = balance - %s WHERE account_id = '%s'\" % final_amount % source_account, update_result)\n ormAccessUpdate(\"balance\", \"balance + \" + tx_amount, \"accounts\", \"account_id = '\" + recipient + \"'\", recipient_update)\n \n addVar(tx_record, \"{}\")\n AddVariableToJSON(\"source_account\", source_account, tx_record)\n AddVariableToJSON(\"recipient_account\", recipient, tx_record)\n AddVariableToJSON(\"amount\", tx_amount, tx_record)\n AddVariableToJSON(\"commission\", commission_rate, tx_record)\n AddVariableToJSON(\"description_hash\", description_hash, tx_record)\n AddVariableToJSON(\"timestamp\", processing_timestamp, tx_record)\n AddVariableToJSON(\"status\", \"completed\", tx_record)\n \n ormAccessInsert(tx_record, \"transactions\", insert_result)\n \n processed_count = processed_count + 1\n total_amount = total_amount + tx_amount\n else()\n failed_count = failed_count + 1\n end()\n end()\n endLoop()\n \n addVar(final_report, \"{}\")\n AddVariableToJSON(\"total_processed\", processed_count, final_report)\n AddVariableToJSON(\"total_failed\", failed_count, final_report)\n AddVariableToJSON(\"total_amount\", total_amount, final_report)\n AddVariableToJSON(\"processing_results\", processing_results, final_report)\n \n if(processed_count, 0, \">\")\n _status = 200\n addResult(final_report)\n else()\n _status = 422\n addVar(process_error, \"No transactions could be processed\")\n addResult(process_error)\n end()\n exception(system_error)\n _status = 500\n addVar(exception_msg, \"Transaction processing system unavailable\")\n addResult(exception_msg)\n end()\nelse()\n _status = 400\n addVar(missing_data, \"Transaction data is required\")\n addResult(missing_data)\nend()\n\nfunction send_transaction_notification(recipient, amount, timestamp)\n{\n notification_service = avapConnector(\"notification-service-uuid-11111\")\n \n addVar(notification_payload, \"{}\")\n AddVariableToJSON(\"recipient\", recipient, notification_payload)\n AddVariableToJSON(\"amount\", amount, notification_payload)\n AddVariableToJSON(\"timestamp\", timestamp, notification_payload)\n AddVariableToJSON(\"type\", \"transaction_received\", notification_payload)\n \n notification_response = notification_service.send_notification(notification_payload)\n \n return(notification_response)\n}\n\nfunction validate_account_balance(account_id, required_amount, connector)\n{\n ormAccessSelect(\"balance\", \"accounts\", \"account_id = '\" + account_id + \"'\", balance_records)\n \n getListLen(balance_records, record_count)\n \n addVar(validation_response, \"{}\")\n \n if(record_count, 0, \">\")\n itemFromList(balance_records, 0, balance_record)\n variableFromJSON(balance_record, \"balance\", current_balance)\n \n if(None, None, `current_balance >= required_amount`)\n AddVariableToJSON(\"is_valid\", \"true\", validation_response)\n AddVariableToJSON(\"available_balance\", current_balance, validation_response)\n else()\n AddVariableToJSON(\"is_valid\", \"false\", validation_response)\n AddVariableToJSON(\"reason\", \"insufficient_funds\", validation_response)\n end()\n else()\n AddVariableToJSON(\"is_valid\", \"false\", validation_response)\n AddVariableToJSON(\"reason\", \"account_not_found\", validation_response)\n end()\n \n return(validation_response)\n}\n\nfunction calculate_commission(transaction_type, amount)\n{\n if(transaction_type, \"domestic\", \"==\")\n commission = amount * 0.01\n else()\n if(transaction_type, \"international\", \"==\")\n commission = amount * 0.03\n else()\n commission = amount * 0.02\n end()\n end()\n \n return(commission)\n}",
"test_inputs": {
"transactions": "{\"items\": [{\"amount\": 5000, \"recipient_account\": \"ACC789\", \"description\": \"Payment transfer\"}]}",
"account_id": "ACC123",
"transaction_type": "domestic"
},
"test_list": [
"re.match(r'.*total_processed.*', final_report)",
"re.match(r'.*completed.*', tx_record)",
"re.match(r'.*[0-9a-f]{64}.*', description_hash)"
],
"_detected": [
"AddVariableToJSON",
"_status",
"addParam",
"addResult",
"addVar",
"avapConnector",
"else",
"encodeSHA256",
"end",
"endLoop",
"function",
"gather",
"getDateTime",
"getListLen",
"if_mode2",
"import",
"itemFromList",
"ormAccessInsert",
"ormAccessSelect",
"ormAccessUpdate",
"ormDirect",
"return",
"startLoop",
"try",
"variableFromJSON"
],
"_reward": {
"ecs": 0.658,
"novelty": 0.107,
"test_quality": 1.0,
"reward": 0.516,
"detected": [
"AddVariableToJSON",
"_status",
"addParam",
"addResult",
"addVar",
"avapConnector",
"else",
"encodeSHA256",
"end",
"endLoop",
"function",
"gather",
"getDateTime",
"getListLen",
"if_mode2",
"import",
"itemFromList",
"ormAccessInsert",
"ormAccessSelect",
"ormAccessUpdate",
"ormDirect",
"return",
"startLoop",
"try",
"variableFromJSON"
]
}
},
{
"task_id": 9,
"text": "Desarrollar un microservicio de monitoreo de salud que reciba múltiples endpoints para verificar, realice peticiones HTTP concurrentes con timeout, procese las respuestas, calcule métricas de disponibilidad, convierta timestamps de las respuestas, registre los resultados en base de datos, maneje errores de conectividad, y genere un reporte consolidado con estadísticas de uptime y códigos de estado por servicio.",
"code": "include \"monitoring/health_config.avap\"\ngetQueryParamList(\"endpoints\", endpoint_list)\naddParam(\"alert_threshold\", threshold)\naddParam(\"check_interval\", interval)\n\ngetListLen(endpoint_list, total_endpoints)\n\nif(total_endpoints, 0, \"==\")\n _status = 400\n addVar(error_msg, \"No endpoints provided for monitoring\")\n addResult(error_msg)\nelse()\n db_connector = avapConnector(\"health-monitor-db-uuid-11111\")\n \n ormCheckTable(\"health_checks\", table_exists)\n \n if(table_exists, \"false\", \"==\")\n addVar(fields, \"[\\\"endpoint\\\", \\\"status_code\\\", \\\"response_time\\\", \\\"timestamp\\\", \\\"error_message\\\"]\")\n addVar(field_types, \"[\\\"TEXT\\\", \\\"INTEGER\\\", \\\"REAL\\\", \\\"TEXT\\\", \\\"TEXT\\\"]\")\n ormCreateTable(fields, field_types, \"health_checks\", create_result)\n end()\n \n addVar(successful_checks, 0)\n addVar(failed_checks, 0)\n addVar(total_response_time, 0)\n addVar(status_report, \"{}\")\n addVar(check_results, \"[]\")\n \n getDateTime(\"%Y-%m-%d %H:%M:%S\", 0, \"UTC\", check_start_time)\n \n startLoop(i, 0, total_endpoints)\n itemFromList(endpoint_list, i, current_endpoint)\n \n if(None, None, `\"http\" in current_endpoint or \"https\" in current_endpoint`)\n health_task = go check_endpoint_health(current_endpoint, interval)\n check_result = gather(health_task, 8000)\n \n try()\n variableFromJSON(check_result, \"status\", endpoint_status)\n variableFromJSON(check_result, \"response_time\", response_time)\n variableFromJSON(check_result, \"status_code\", status_code)\n variableFromJSON(check_result, \"timestamp\", raw_timestamp)\n \n stampToDatetime(raw_timestamp, \"%Y-%m-%d %H:%M:%S\", 0, formatted_timestamp)\n \n addVar(health_record, \"{}\")\n AddVariableToJSON(\"endpoint\", current_endpoint, health_record)\n AddVariableToJSON(\"status_code\", status_code, health_record)\n AddVariableToJSON(\"response_time\", response_time, health_record)\n AddVariableToJSON(\"timestamp\", formatted_timestamp, health_record)\n \n if(endpoint_status, \"healthy\", \"==\")\n successful_checks = successful_checks + 1\n total_response_time = total_response_time + response_time\n AddVariableToJSON(\"error_message\", \"\", health_record)\n else()\n failed_checks = failed_checks + 1\n variableFromJSON(check_result, \"error\", error_detail)\n AddVariableToJSON(\"error_message\", error_detail, health_record)\n end()\n \n ormAccessInsert(health_record, \"health_checks\", insert_result)\n \n exception(processing_error)\n failed_checks = failed_checks + 1\n addVar(error_record, \"{}\")\n AddVariableToJSON(\"endpoint\", current_endpoint, error_record)\n AddVariableToJSON(\"status_code\", 0, error_record)\n AddVariableToJSON(\"response_time\", 0, error_record)\n AddVariableToJSON(\"timestamp\", check_start_time, error_record)\n AddVariableToJSON(\"error_message\", \"Processing failed\", error_record)\n ormAccessInsert(error_record, \"health_checks\", error_insert)\n end()\n else()\n failed_checks = failed_checks + 1\n end()\n endLoop()\n \n availability_percentage = (successful_checks * 100) / total_endpoints\n \n if(successful_checks, 0, \">\")\n average_response_time = total_response_time / successful_checks\n else()\n addVar(average_response_time, 0)\n end()\n \n AddVariableToJSON(\"check_timestamp\", check_start_time, status_report)\n AddVariableToJSON(\"total_endpoints\", total_endpoints, status_report)\n AddVariableToJSON(\"successful_checks\", successful_checks, status_report)\n AddVariableToJSON(\"failed_checks\", failed_checks, status_report)\n AddVariableToJSON(\"availability_percentage\", availability_percentage, status_report)\n AddVariableToJSON(\"average_response_time\", average_response_time, status_report)\n \n if(None, None, `threshold is not None and availability_percentage < int(threshold)`)\n AddVariableToJSON(\"alert_triggered\", \"true\", status_report)\n _status = 503\n else()\n AddVariableToJSON(\"alert_triggered\", \"false\", status_report)\n _status = 200\n end()\n \n addResult(status_report)\nend()\n\nfunction check_endpoint_health(endpoint_url, timeout_ms)\n{\n addVar(headers, \"{}\")\n AddVariableToJSON(\"User-Agent\", \"HealthMonitor/1.0\", headers)\n AddVariableToJSON(\"Accept\", \"application/json\", headers)\n \n getTimeStamp(\"now\", \"%Y-%m-%d %H:%M:%S\", 0, start_timestamp)\n \n try()\n RequestGet(endpoint_url, \"\", headers, response_data, timeout_ms)\n \n getTimeStamp(\"now\", \"%Y-%m-%d %H:%M:%S\", 0, end_timestamp)\n response_time = end_timestamp - start_timestamp\n \n addVar(health_result, \"{}\")\n \n if(None, None, `response_data is not None`)\n AddVariableToJSON(\"status\", \"healthy\", health_result)\n AddVariableToJSON(\"status_code\", 200, health_result)\n AddVariableToJSON(\"response_time\", response_time, health_result)\n AddVariableToJSON(\"timestamp\", end_timestamp, health_result)\n else()\n AddVariableToJSON(\"status\", \"unhealthy\", health_result)\n AddVariableToJSON(\"status_code\", 0, health_result)\n AddVariableToJSON(\"response_time\", response_time, health_result)\n AddVariableToJSON(\"timestamp\", end_timestamp, health_result)\n AddVariableToJSON(\"error\", \"No response received\", health_result)\n end()\n \n return(health_result)\n \n exception(request_error)\n getTimeStamp(\"now\", \"%Y-%m-%d %H:%M:%S\", 0, error_timestamp)\n \n addVar(error_result, \"{}\")\n AddVariableToJSON(\"status\", \"unhealthy\", error_result)\n AddVariableToJSON(\"status_code\", 0, error_result)\n AddVariableToJSON(\"response_time\", 0, error_result)\n AddVariableToJSON(\"timestamp\", error_timestamp, error_result)\n AddVariableToJSON(\"error\", \"Connection failed\", error_result)\n \n return(error_result)\n end()\n}",
"test_inputs": {
"endpoints": [
"http://api1.example.com/health",
"https://api2.example.com/status"
],
"alert_threshold": "80",
"check_interval": "5000"
},
"test_list": [
"re.match(r'\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}', check_timestamp)",
"re.match(r'^(100|[1-9]?\\d)$', str(availability_percentage))",
"re.match(r'^(true|false)$', alert_triggered)"
],
"_detected": [
"AddVariableToJSON",
"RequestGet",
"_status",
"addParam",
"addResult",
"addVar",
"avapConnector",
"else",
"end",
"endLoop",
"function",
"gather",
"getDateTime",
"getListLen",
"getQueryParamList",
"getTimeStamp",
"if_mode2",
"itemFromList",
"ormAccessInsert",
"ormCheckTable",
"return",
"stampToDatetime",
"startLoop",
"try",
"variableFromJSON"
],
"_reward": {
"ecs": 0.658,
"novelty": 0.207,
"test_quality": 1.0,
"reward": 0.551,
"detected": [
"AddVariableToJSON",
"RequestGet",
"_status",
"addParam",
"addResult",
"addVar",
"avapConnector",
"else",
"end",
"endLoop",
"function",
"gather",
"getDateTime",
"getListLen",
"getQueryParamList",
"getTimeStamp",
"if_mode2",
"itemFromList",
"ormAccessInsert",
"ormCheckTable",
"return",
"stampToDatetime",
"startLoop",
"try",
"variableFromJSON"
]
}
},
{
"task_id": 10,
"text": "Desarrollar un microservicio de procesamiento de documentos legales que reciba archivos mediante POST, valide su formato usando expresiones regulares, genere hashes MD5 para verificación de integridad, extraiga metadatos relevantes (fechas, números de caso, firmantes), almacene los datos en base de datos, sincronice con un sistema externo de archivado mediante POST concurrente, registre auditoría de cada operación, y retorne un reporte completo con estadísticas del procesamiento. El servicio debe manejar múltiples documentos simultáneamente, validar rangos de fechas, generar códigos de referencia aleatorios, y gestionar errores de red o base de datos.",
"code": "include \"config/document_processing_settings.avap\"\nimport \"legal_document_utils\"\n\naddParam(\"documents\", doc_data)\naddParam(\"department\", dept_id)\naddParam(\"priority_level\", priority)\n\nif(doc_data, None, \"==\")\n _status = 400\n addVar(error_msg, \"No documents provided\")\n addResult(error_msg)\nelse()\n db_connector = avapConnector(\"legal-db-uuid-98765\")\n \n try()\n variableFromJSON(doc_data, \"files\", files_list)\n getListLen(files_list, total_files)\n \n addVar(processed_docs, \"[]\")\n addVar(success_count, 0)\n addVar(error_count, 0)\n addVar(total_size, 0)\n \n startLoop(i, 0, total_files)\n itemFromList(files_list, i, current_file)\n \n process_task = go process_legal_document(current_file, dept_id, db_connector)\n archive_task = go archive_to_external_system(current_file)\n \n doc_result = gather(process_task, 8000)\n archive_result = gather(archive_task, 5000)\n \n if(None, None, `doc_result is not None`)\n variableFromJSON(doc_result, \"status\", process_status)\n variableFromJSON(doc_result, \"file_size\", file_size)\n \n total_size = total_size + file_size\n \n if(process_status, \"success\", \"==\")\n success_count = success_count + 1\n \n variableFromJSON(doc_result, \"document_id\", doc_id)\n variableFromJSON(doc_result, \"reference_code\", ref_code)\n variableFromJSON(doc_result, \"extracted_date\", doc_date)\n \n addVar(processed_item, \"{}\")\n AddVariableToJSON(\"document_id\", doc_id, processed_item)\n AddVariableToJSON(\"reference_code\", ref_code, processed_item)\n AddVariableToJSON(\"status\", \"processed\", processed_item)\n AddVariableToJSON(\"extracted_date\", doc_date, processed_item)\n \n if(None, None, `archive_result is not None`)\n variableFromJSON(archive_result, \"archive_id\", ext_archive_id)\n AddVariableToJSON(\"external_archive_id\", ext_archive_id, processed_item)\n end()\n else()\n error_count = error_count + 1\n variableFromJSON(doc_result, \"error_detail\", error_msg)\n \n addVar(error_item, \"{}\")\n AddVariableToJSON(\"status\", \"error\", error_item)\n AddVariableToJSON(\"error_message\", error_msg, error_item)\n end()\n else()\n error_count = error_count + 1\n end()\n endLoop()\n \n getDateTime(\"%Y-%m-%d %H:%M:%S\", 0, \"UTC\", processing_timestamp)\n \n addVar(final_response, \"{}\")\n AddVariableToJSON(\"processing_timestamp\", processing_timestamp, final_response)\n AddVariableToJSON(\"department_id\", dept_id, final_response)\n AddVariableToJSON(\"total_documents\", total_files, final_response)\n AddVariableToJSON(\"successful_processed\", success_count, final_response)\n AddVariableToJSON(\"failed_processed\", error_count, final_response)\n AddVariableToJSON(\"total_size_mb\", total_size, final_response)\n AddVariableToJSON(\"processed_documents\", processed_docs, final_response)\n \n if(success_count, 0, \">\")\n _status = 200\n addResult(final_response)\n else()\n _status = 422\n addVar(process_error, \"No documents could be processed successfully\")\n addResult(process_error)\n end()\n exception(system_error)\n _status = 500\n addVar(exception_msg, \"Document processing system failure\")\n addResult(exception_msg)\n end()\nend()\n\nfunction process_legal_document(file_data, department, connector)\n{\n variableFromJSON(file_data, \"filename\", filename)\n variableFromJSON(file_data, \"content\", file_content)\n variableFromJSON(file_data, \"size\", file_size)\n \n getRegex(filename, \"\\.(pdf|docx|txt)$\", file_extension)\n \n addVar(result, \"{}\")\n \n if(None, None, `file_extension is not None`)\n encodeMD5(file_content, content_hash)\n \n replace(file_content, \"\\n\", \" \", cleaned_content)\n getRegex(cleaned_content, \"Case No[.:] ([A-Z0-9-]+)\", case_number)\n getRegex(cleaned_content, \"([0-9]{1,2}/[0-9]{1,2}/[0-9]{4})\", extracted_date)\n getRegex(cleaned_content, \"Signed by: ([A-Za-z ]+)\", signatory)\n \n randomString(\"[A-Z]{3}[0-9]{6}\", 9, reference_code)\n \n addVar(document_record, \"{}\")\n AddVariableToJSON(\"filename\", filename, document_record)\n AddVariableToJSON(\"content_hash\", content_hash, document_record)\n AddVariableToJSON(\"file_size\", file_size, document_record)\n AddVariableToJSON(\"department_id\", department, document_record)\n AddVariableToJSON(\"reference_code\", reference_code, document_record)\n \n if(None, None, `case_number is not None`)\n AddVariableToJSON(\"case_number\", case_number, document_record)\n end()\n \n if(None, None, `extracted_date is not None`)\n AddVariableToJSON(\"document_date\", extracted_date, document_record)\n end()\n \n if(None, None, `signatory is not None`)\n AddVariableToJSON(\"signatory\", signatory, document_record)\n end()\n \n ormAccessInsert(document_record, \"legal_documents\", insert_result)\n \n log_document_processing(filename, \"PROCESSED\", department, connector)\n \n AddVariableToJSON(\"status\", \"success\", result)\n AddVariableToJSON(\"document_id\", insert_result, result)\n AddVariableToJSON(\"reference_code\", reference_code, result)\n AddVariableToJSON(\"file_size\", file_size, result)\n \n if(None, None, `extracted_date is not None`)\n AddVariableToJSON(\"extracted_date\", extracted_date, result)\n end()\n else()\n AddVariableToJSON(\"status\", \"error\", result)\n AddVariableToJSON(\"error_detail\", \"Invalid file format\", result)\n AddVariableToJSON(\"file_size\", file_size, result)\n end()\n \n return(result)\n}\n\nfunction archive_to_external_system(file_data)\n{\n external_connector = avapConnector(\"archive-service-uuid-54321\")\n \n addVar(archive_payload, \"{}\")\n variableFromJSON(file_data, \"filename\", file_name)\n variableFromJSON(file_data, \"content\", file_content)\n \n encodeSHA256(file_content, content_signature)\n \n AddVariableToJSON(\"filename\", file_name, archive_payload)\n AddVariableToJSON(\"content_signature\", content_signature, archive_payload)\n AddVariableToJSON(\"archive_type\", \"legal_document\", archive_payload)\n \n addVar(headers, \"{}\")\n AddVariableToJSON(\"Content-Type\", \"application/json\", headers)\n AddVariableToJSON(\"Authorization\", \"Bearer archive-token-xyz\", headers)\n \n RequestPost(\"https://archive.legal-system.com/api/v1/store\", \"\", headers, archive_payload, response_data, 6000)\n \n if(None, None, `response_data is not None`)\n return(response_data)\n else()\n addVar(error_response, \"{}\")\n AddVariableToJSON(\"error\", \"External archive failed\", error_response)\n return(error_response)\n end()\n}\n\nfunction log_document_processing(filename, status, department, connector)\n{\n getDateTime(\"%Y-%m-%d %H:%M:%S\", 0, \"UTC\", log_timestamp)\n \n addVar(audit_record, \"{}\")\n AddVariableToJSON(\"filename\", filename, audit_record)\n AddVariableToJSON(\"processing_status\", status, audit_record)\n AddVariableToJSON(\"department_id\", department, audit_record)\n AddVariableToJSON(\"timestamp\", log_timestamp, audit_record)\n AddVariableToJSON(\"processor_id\", \"AVAP-LEGAL-001\", audit_record)\n \n ormAccessInsert(audit_record, \"document_processing_audit\", audit_result)\n \n return(audit_result)\n}",
"test_inputs": {
"documents": "{\"files\": [{\"filename\": \"case_123.pdf\", \"content\": \"Case No: ABC-2024-001\\nDate: 12/15/2023\\nSigned by: John Smith\\nLegal content here\", \"size\": 1024}]}",
"department": "LEGAL_DEPT_01",
"priority_level": "HIGH"
},
"test_list": [
"re.match(r'.*processing_timestamp.*', final_response)",
"re.match(r'.*successful_processed.*', final_response)",
"re.match(r'.*ABC[0-9]{6}.*', reference_code)"
],
"_detected": [
"AddVariableToJSON",
"RequestPost",
"_status",
"addParam",
"addResult",
"addVar",
"avapConnector",
"else",
"encodeMD5",
"encodeSHA256",
"end",
"endLoop",
"function",
"gather",
"getDateTime",
"getListLen",
"if_mode2",
"import",
"itemFromList",
"ormAccessInsert",
"randomString",
"replace",
"return",
"startLoop",
"try",
"variableFromJSON"
],
"_reward": {
"ecs": 0.684,
"novelty": 0.172,
"test_quality": 1.0,
"reward": 0.552,
"detected": [
"AddVariableToJSON",
"RequestPost",
"_status",
"addParam",
"addResult",
"addVar",
"avapConnector",
"else",
"encodeMD5",
"encodeSHA256",
"end",
"endLoop",
"function",
"gather",
"getDateTime",
"getListLen",
"if_mode2",
"import",
"itemFromList",
"ormAccessInsert",
"randomString",
"replace",
"return",
"startLoop",
"try",
"variableFromJSON"
]
}
}
]