117 lines
4.5 KiB
Python
117 lines
4.5 KiB
Python
|
register_swagger = {
|
||
|
"methods": ["POST"],
|
||
|
"tags": ["User"],
|
||
|
"description": "Registers a new user in the app. Also sends a notification to the user via the provided email",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"in": "body",
|
||
|
"name": "body",
|
||
|
"description": 'Username, displayname and password of the new user\n- Username can be only lowercase and up to 64 characters\n- Displayname can contain special characters (. _ -) and lower and upper characters\n- Password must be at least 8 characters long, contain both lower and upper characters, numbers and special characters\n- Email has to be in format "name@domain.tld" and up to 64 characters long in total',
|
||
|
"required": True,
|
||
|
"schema": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"username": {"type": "string", "example": "mycoolusername"},
|
||
|
"email": {"type": "string", "example": "mymail@dot.com"},
|
||
|
"displayname": {"type": "string", "example": "MyCoolDisplayName"},
|
||
|
"password": {"type": "string", "example": "My5tr0ngP@55w0rd"},
|
||
|
},
|
||
|
},
|
||
|
}
|
||
|
],
|
||
|
}
|
||
|
|
||
|
login_swagger = {
|
||
|
"methods": ["POST"],
|
||
|
"tags": ["User"],
|
||
|
"description": "Logs in using username and password and returns a JWT token for further authorization of requests.\n**The token is valid for 1 hour**",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"in": "body",
|
||
|
"name": "body",
|
||
|
"description": "Username and password payload",
|
||
|
"required": True,
|
||
|
"schema": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"username": {"type": "string", "example": "mycoolusername"},
|
||
|
"password": {"type": "string", "example": "MyStrongPassword123"},
|
||
|
},
|
||
|
},
|
||
|
}
|
||
|
],
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"description": "Returns a fresh token",
|
||
|
"schema": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"token": {
|
||
|
"type": "string",
|
||
|
"example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTcxMDMyMjkyOCwianRpIjoiZDFhYzQxZDktZjA4NC00MmYzLThlMWUtZWFmZjJiNGU1MDAyIiwidHlwZSI6ImFjY2VzcyIsInN1YiI6MjMwMDEsIm5iZiI6MTcxMDMyMjkyOCwiZXhwIjoxNzEwMzI2NTI4fQ.SW7LAi1j5vDOEIvzeN-sy0eHPP9PFJFkXYY029O35w0",
|
||
|
}
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
"400": {
|
||
|
"description": "Possible causes:\n- Missing username or password from request.\n- Nonexistent username"
|
||
|
},
|
||
|
"401": {"description": "Password is incorrect"},
|
||
|
},
|
||
|
}
|
||
|
|
||
|
logout_swagger = {
|
||
|
"methods": ["DELETE"],
|
||
|
"tags": ["User"],
|
||
|
"security": [{"JWT": []}],
|
||
|
"description": "Logs out the user via provided JWT token",
|
||
|
"parameters": [],
|
||
|
"responses": {"200": {"description": "User successfully logged out"}},
|
||
|
}
|
||
|
|
||
|
update_swagger = {
|
||
|
"methods": ["PUT"],
|
||
|
"tags": ["User"],
|
||
|
"security": [{"JWT": []}],
|
||
|
"description": "Updates user attributes.",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"in": "body",
|
||
|
"name": "body",
|
||
|
"description": "Attributes to update for the user.",
|
||
|
"required": True,
|
||
|
"schema": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"new_username": {"type": "string", "example": "mycoolusername"},
|
||
|
"new_email": {"type": "string", "example": "mymail@dot.com"},
|
||
|
"new_displayname": {
|
||
|
"type": "string",
|
||
|
"example": "MyCoolDisplayName",
|
||
|
},
|
||
|
"new_password": {"type": "string", "example": "My5tr0ngP@55w0rd"},
|
||
|
},
|
||
|
},
|
||
|
}
|
||
|
],
|
||
|
"responses": {
|
||
|
"200": {"description": "User attributes updated successfully."},
|
||
|
"400": {"description": "Bad request. Check the request body for errors."},
|
||
|
"401": {"description": "Unauthorized. User must be logged in."},
|
||
|
"409": {"description": "Conflict. Check the response message for details."},
|
||
|
"500": {
|
||
|
"description": "Internal server error. Contact the system administrator."
|
||
|
},
|
||
|
},
|
||
|
}
|
||
|
|
||
|
|
||
|
delete_swagger = {
|
||
|
"methods": ["DELETE"],
|
||
|
"tags": ["User"],
|
||
|
"security": [{"JWT": []}],
|
||
|
"description": "Deletes a user via JWT token",
|
||
|
"parameters": [],
|
||
|
"responses": {"200": {"description": "User successfully deleted"}},
|
||
|
}
|