272 lines
7.1 KiB
JSON
272 lines
7.1 KiB
JSON
{
|
|
"timestamp": "2025-07-08T21:48:47.163Z",
|
|
"summary": {
|
|
"totalApiEndpoints": 187,
|
|
"totalCurrentEndpoints": 318,
|
|
"totalMissingEndpoints": 2,
|
|
"byAuthType": {
|
|
"PUBLIC": {
|
|
"apiEndpoints": 37,
|
|
"currentEndpoints": 77,
|
|
"missingEndpoints": 1,
|
|
"coverage": "208.1%"
|
|
},
|
|
"PROVIDER": {
|
|
"apiEndpoints": 136,
|
|
"currentEndpoints": 199,
|
|
"missingEndpoints": 1,
|
|
"coverage": "146.3%"
|
|
},
|
|
"PATIENT": {
|
|
"apiEndpoints": 13,
|
|
"currentEndpoints": 25,
|
|
"missingEndpoints": 0,
|
|
"coverage": "192.3%"
|
|
},
|
|
"PARTNER": {
|
|
"apiEndpoints": 0,
|
|
"currentEndpoints": 6,
|
|
"missingEndpoints": 0,
|
|
"coverage": "Infinity%"
|
|
},
|
|
"AFFILIATE": {
|
|
"apiEndpoints": 1,
|
|
"currentEndpoints": 6,
|
|
"missingEndpoints": 0,
|
|
"coverage": "600.0%"
|
|
},
|
|
"NETWORK": {
|
|
"apiEndpoints": 0,
|
|
"currentEndpoints": 5,
|
|
"missingEndpoints": 0,
|
|
"coverage": "Infinity%"
|
|
}
|
|
}
|
|
},
|
|
"missingEndpoints": {
|
|
"PUBLIC": [
|
|
{
|
|
"path": "/api/refresh-token",
|
|
"method": "POST",
|
|
"operationId": "refresh",
|
|
"summary": "Refresh authentication token",
|
|
"description": "Refresh an existing authentication token using a refresh token",
|
|
"tags": [
|
|
"Authentication"
|
|
],
|
|
"security": [],
|
|
"requiresAuth": false,
|
|
"parameters": {
|
|
"path": [],
|
|
"query": [],
|
|
"body": [
|
|
{
|
|
"name": "refresh_token",
|
|
"type": "string",
|
|
"format": null,
|
|
"required": true,
|
|
"description": "",
|
|
"enum": null,
|
|
"example": "eyJ0eXAiOiJKV1QiLCJhbGc...",
|
|
"items": null,
|
|
"properties": null
|
|
}
|
|
],
|
|
"header": []
|
|
},
|
|
"requestBody": {
|
|
"required": true,
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"required": [
|
|
"refresh_token"
|
|
],
|
|
"properties": {
|
|
"refresh_token": {
|
|
"type": "string",
|
|
"example": "eyJ0eXAiOiJKV1QiLCJhbGc..."
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"examples": {}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Token refreshed successfully",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"properties": {
|
|
"accessToken": {
|
|
"type": "string",
|
|
"example": "eyJ0eXAiOiJKV1QiLCJhbGc..."
|
|
},
|
|
"refreshToken": {
|
|
"type": "string",
|
|
"example": "eyJ0eXAiOiJKV1QiLCJhbGc..."
|
|
},
|
|
"tokenType": {
|
|
"type": "string",
|
|
"example": "Bearer"
|
|
}
|
|
},
|
|
"type": "object"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Invalid refresh token",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"properties": {
|
|
"message": {
|
|
"type": "string",
|
|
"example": "Invalid refresh token"
|
|
}
|
|
},
|
|
"type": "object"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"PROVIDER": [
|
|
{
|
|
"path": "/api/change-password",
|
|
"method": "POST",
|
|
"operationId": "updatePasswordAuth",
|
|
"summary": "Update patient password",
|
|
"description": "Update the password for an authenticated patient",
|
|
"tags": [
|
|
"Patient Authentication"
|
|
],
|
|
"security": [
|
|
{
|
|
"bearerAuth": []
|
|
}
|
|
],
|
|
"requiresAuth": true,
|
|
"parameters": {
|
|
"path": [],
|
|
"query": [],
|
|
"body": [
|
|
{
|
|
"name": "current_password",
|
|
"type": "string",
|
|
"format": null,
|
|
"required": true,
|
|
"description": "",
|
|
"enum": null,
|
|
"example": "currentpassword",
|
|
"items": null,
|
|
"properties": null
|
|
},
|
|
{
|
|
"name": "new_password",
|
|
"type": "string",
|
|
"format": null,
|
|
"required": true,
|
|
"description": "",
|
|
"enum": null,
|
|
"example": "newpassword123",
|
|
"items": null,
|
|
"properties": null
|
|
}
|
|
],
|
|
"header": []
|
|
},
|
|
"requestBody": {
|
|
"required": true,
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"required": [
|
|
"current_password",
|
|
"new_password"
|
|
],
|
|
"properties": {
|
|
"current_password": {
|
|
"type": "string",
|
|
"example": "currentpassword"
|
|
},
|
|
"new_password": {
|
|
"type": "string",
|
|
"example": "newpassword123"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"examples": {}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Password updated successfully",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"properties": {
|
|
"message": {
|
|
"type": "string",
|
|
"example": "Password updated successfully"
|
|
}
|
|
},
|
|
"type": "object"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Current password is incorrect",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"properties": {
|
|
"message": {
|
|
"type": "string",
|
|
"example": "Current password is incorrect"
|
|
}
|
|
},
|
|
"type": "object"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthenticated"
|
|
},
|
|
"422": {
|
|
"description": "Validation error"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"PATIENT": [],
|
|
"PARTNER": [],
|
|
"AFFILIATE": [],
|
|
"NETWORK": []
|
|
},
|
|
"recommendations": [
|
|
{
|
|
"authType": "PUBLIC",
|
|
"action": "Implement 1 missing PUBLIC endpoints",
|
|
"priority": "MEDIUM"
|
|
},
|
|
{
|
|
"authType": "PROVIDER",
|
|
"action": "Implement 1 missing PROVIDER endpoints",
|
|
"priority": "HIGH"
|
|
}
|
|
]
|
|
} |