[ { "task_id": 1, "text": "Crear un endpoint que valide credenciales de usuario: recibe username y password, genera hash SHA256 de la contraseña, consulta la base de datos para verificar las credenciales y devuelve la cantidad de usuarios encontrados junto con el estado de autenticación.", "code": "addParam(\"username\", user_input)\naddParam(\"password\", pass_input)\nencodeSHA256(pass_input, hashed_pass)\normAccessSelect(\"*\", \"users\", \"username='\" + user_input + \"' AND password='\" + hashed_pass + \"'\", user_results)\ngetListLen(user_results, total_users)\nif(total_users, 0, \">\")\n_status = 200\naddVar(auth_status, \"success\")\nelse()\n_status = 401\naddVar(auth_status, \"failed\")\nend()\naddVar(user_count, total_users)\naddResult(auth_status)\naddResult(user_count)", "test_inputs": { "username": "admin", "password": "secret123" }, "test_list": [ "re.match(r'success|failed', auth_status)", "re.match(r'\\d+', str(user_count))" ], "_cell": [ "encodeSHA256", "getListLen", "ormAccessSelect" ], "_quality": { "fidelity": 1.0, "bonus_ratio": 0.2, "test_quality": 1.0, "richness": 0.5, "quality": 1.31, "detected": [ "_status", "addParam", "addResult", "addVar", "else", "encodeSHA256", "end", "getListLen", "if_mode1", "ormAccessSelect" ], "cell": [ "encodeSHA256", "getListLen", "ormAccessSelect" ], "extra": [ "_status", "addParam", "addResult", "addVar", "else", "end", "if_mode1" ] } }, { "task_id": 2, "text": "Crear un sistema de autenticación que genere un hash SHA256 de la contraseña, ejecute una validación asíncrona del usuario y registre la fecha/hora del intento de login", "code": "addParam(\"username\", username)\naddParam(\"password\", password)\nencodeSHA256(password, password_hash)\ntask_id = go validateUser(username, password_hash)\ngetDateTime(\"%Y-%m-%d %H:%M:%S\", 0, \"UTC\", login_time)\nresult = gather(task_id, 3000)\nif(result, None, \"!=\")\naddVar(_status, 200)\naddResult(username)\naddResult(login_time)\nelse()\naddVar(_status, 401)\nend()\n\nfunction validateUser(user, hash_pass)\n{\nif(user, \"admin\", \"==\")\nif(hash_pass, \"ef92b778bafe771e89245b89ecbc08a44a4e166c06659911881f383d4473e94f\", \"==\")\nreturn(\"valid\")\nelse()\nreturn(None)\nend()\nelse()\nreturn(None)\nend()\n}", "test_inputs": { "username": "admin", "password": "secret123" }, "test_list": [ "re.match(r'\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}', login_time)", "re.match(r'[a-f0-9]{64}', password_hash)" ], "_cell": [ "encodeSHA256", "gather", "getDateTime" ], "_quality": { "fidelity": 1.0, "bonus_ratio": 0.257, "test_quality": 1.0, "richness": 0.833, "quality": 1.36, "detected": [ "_status", "addParam", "addResult", "addVar", "else", "encodeSHA256", "end", "function", "gather", "getDateTime", "if_mode1", "return" ], "cell": [ "encodeSHA256", "gather", "getDateTime" ], "extra": [ "_status", "addParam", "addResult", "addVar", "else", "end", "function", "if_mode1", "return" ] } }, { "task_id": 3, "text": "Crear un servicio que valide credenciales de usuario mediante hash SHA256, registre el timestamp de autenticación y extraiga datos del perfil JSON del usuario", "code": "addParam(\"user_credentials\", userData)\naddParam(\"profile\", profileData)\nvariableFromJSON(userData, \"password\", rawPassword)\nvariableFromJSON(userData, \"username\", username)\nvariableFromJSON(profileData, \"email\", userEmail)\nencodeSHA256(rawPassword, hashedPassword)\ngetTimeStamp(\"2024-01-15 10:30:00\", \"%Y-%m-%d %H:%M:%S\", 0, loginTimestamp)\nif(hashedPassword, \"5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8\", \"==\")\n addVar(_status, 200)\n addResult(username)\n addResult(userEmail)\n addResult(loginTimestamp)\nelse()\n addVar(_status, 401)\nend()", "test_inputs": { "user_credentials": "{\"username\":\"john\", \"password\":\"password\"}", "profile": "{\"email\":\"john@example.com\", \"role\":\"user\"}" }, "test_list": [ "re.match(r'john', username)", "re.match(r'\\d{10}', str(loginTimestamp))" ], "_cell": [ "encodeSHA256", "getTimeStamp", "variableFromJSON" ], "_quality": { "fidelity": 1.0, "bonus_ratio": 0.2, "test_quality": 1.0, "richness": 0.5, "quality": 1.31, "detected": [ "_status", "addParam", "addResult", "addVar", "else", "encodeSHA256", "end", "getTimeStamp", "if_mode1", "variableFromJSON" ], "cell": [ "encodeSHA256", "getTimeStamp", "variableFromJSON" ], "extra": [ "_status", "addParam", "addResult", "addVar", "else", "end", "if_mode1" ] } }, { "task_id": 4, "text": "Crear un endpoint que procese datos de usuario desde JSON, valide la longitud de una lista de elementos y establezca el código de respuesta HTTP apropiado según los resultados", "code": "addParam(\"user_data\", json_data)\nvariableFromJSON(json_data, \"items\", user_items)\ngetListLen(user_items, items_count)\nif(items_count, 0, \">\")\n addVar(_status, 200)\n addResult(items_count)\nelse()\n addVar(_status, 400)\nend()", "test_inputs": { "user_data": "{\"items\": [\"producto1\", \"producto2\", \"producto3\"]}" }, "test_list": [ "re.match(r'200', str(_status))", "re.match(r'3', str(items_count))" ], "_cell": [ "_status", "getListLen", "variableFromJSON" ], "_quality": { "fidelity": 1.0, "bonus_ratio": 0.171, "test_quality": 1.0, "richness": 0.3, "quality": 1.281, "detected": [ "_status", "addParam", "addResult", "addVar", "else", "end", "getListLen", "if_mode1", "variableFromJSON" ], "cell": [ "_status", "getListLen", "variableFromJSON" ], "extra": [ "addParam", "addResult", "addVar", "else", "end", "if_mode1" ] } }, { "task_id": 5, "text": "Escribe un microservicio que actualice el estado de una cuenta bancaria. Si el parámetro 'action' es 'freeze', cambia el estado a 'frozen'. Si es cualquier otra acción, cambia a 'active'. Usa una tabla llamada 'accounts' con campos id y status.", "code": "addParam(\"account_id\", account_id)\naddParam(\"action\", action)\nif(action, \"freeze\", \"==\")\naddVar(new_status, \"frozen\")\nelse()\naddVar(new_status, \"active\")\nend()\normAccessUpdate([\"status\"], [new_status], \"accounts\", \"id = \" + account_id, update_result)\naddResult(update_result)\naddVar(_status, 200)", "test_inputs": { "account_id": "123", "action": "freeze" }, "test_list": [ "re.match(r'frozen', new_status)", "re.match(r'200', str(_status))" ], "_cell": [ "else", "end", "ormAccessUpdate" ], "_quality": { "fidelity": 1.0, "bonus_ratio": 0.143, "test_quality": 1.0, "richness": 0.333, "quality": 1.276, "detected": [ "_status", "addParam", "addResult", "addVar", "else", "end", "if_mode1", "ormAccessUpdate" ], "cell": [ "else", "end", "ormAccessUpdate" ], "extra": [ "_status", "addParam", "addResult", "addVar", "if_mode1" ] } }, { "task_id": 6, "text": "Crea un endpoint que genere un token de sesión único. El sistema debe generar una cadena aleatoria de 16 caracteres alfanuméricos, calcular su hash MD5 para crear un identificador seguro, y devolver ambos valores en la respuesta JSON.", "code": "randomString(\"[a-zA-Z0-9]\", 16, token)\nencodeMD5(token, token_hash)\naddResult(token)\naddResult(token_hash)", "test_inputs": {}, "test_list": [ "re.match(r'^[a-zA-Z0-9]{16}$', token)", "re.match(r'^[a-f0-9]{32}$', token_hash)" ], "_cell": [ "addResult", "encodeMD5", "randomString" ], "_quality": { "fidelity": 1.0, "bonus_ratio": 0.0, "test_quality": 1.0, "richness": 0.133, "quality": 1.213, "detected": [ "addResult", "encodeMD5", "randomString" ], "cell": [ "addResult", "encodeMD5", "randomString" ], "extra": [] } } ]