-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtodolist.py
More file actions
124 lines (108 loc) · 3.22 KB
/
todolist.py
File metadata and controls
124 lines (108 loc) · 3.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
import json
tasks = []
def addTask(event,context) :
body = json.loads(event['body'])
task = body.get("task"," ")
if not task :
return{
"statusCode":"400",
"body":json.dumps({
"message":"Task cannot be empty.Please enter a valid task."
})
}
tasks.append(task)
return{
"statusCode":"200",
"body":json.dumps({
"message":f"Task {task} has been added to the list.",
"tasks":tasks
})
}
def deleteTask(event,context) :
body = json.loads(event['body'])
task = body.get("task"," ")
if not task :
return{
"statusCode":"400",
"body":json.dumps({
"message":"Task cannot be empty.Please enter a valid task."
})
}
tasks.remove(task)
return{
"statusCode":"200",
"body":json.dumps({
"message":f"Task {task} has been deleted from the list.",
"tasks":tasks
})
}
def listTasks(event,context):
return{
"statusCode":"200",
"body":json.dumps({
"tasks":tasks
})
}
def showMenu(event,context):
menu = """
Please select one of the options below:
--------------------------------------
1. Add task
2. Delete task
3. List all tasks
4. Quit
--------------------------------------
"""
return{
"statusCode":"200",
"body":json.dumps({
"message": menu
})
}
def showHelp(event, context):
help_text = """
Welcome to the To-do list API!
-----------------------------------
Here are the available endpoints:
1. GET /help
- Provides information about how to use the API.
2. GET /
- Displays the main menu with options to add, delete, or list tasks.
3. POST /task
- Adds a new task. You need to send a JSON body with the task field.
Example:
{"task": "Your task description"}
4. DELETE /task
- Deletes an existing task. You need to send a JSON body with the task field.
Example:
{"task": "Your task description"}
5. GET /tasks
- Lists all the tasks currently in the list.
6. 4. Quit
- Exits the application.
"""
return {
"statusCode": 200,
"body": json.dumps({
"message": help_text
})
}
def lambda_handler(event,context):
path = event['resource']
if path == '/' and event['httpMethod'] == 'GET' :
return showMenu(event,context)
elif path == '/add' and event['httpMethod'] == 'POST' :
return addTask(event,context)
elif path == '/delete' and event['httpMethod'] == 'DELETE' :
return deleteTask(event,context)
elif path == '/tasks' and event['httpMethod'] == 'GET' :
return listTasks(event,context)
elif path == '/help' and event['httpMethod'] == 'GET' :
return showHelp(event,context)
else :
return{
"statusCode":"404",
"body":json.dumps({
"message":"Resource not found."
})
}