-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmicroservice.py
More file actions
56 lines (47 loc) · 1.44 KB
/
microservice.py
File metadata and controls
56 lines (47 loc) · 1.44 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
from flask import Flask, jsonify
from datetime import date
app = Flask(__name__)
@app.route('/due/<due_date>', methods=['GET'])
def generate_message(due_date):
# Get integer values for month, day, year
try:
month = int(due_date[:2])
day = int(due_date[3:5])
year = int(due_date[6:])
except ValueError:
return jsonify(message="Invalid input")
# Get today's date
today = date.today()
# Format due date
try:
new_due_date = date(year, month, day)
except ValueError:
return jsonify(message="Invalid date")
# Calculate number of days between today and due_date
diff = new_due_date - today
days = diff.days
# Get return message based on difference between today and due_date
match days:
case 0:
message = 'today'
case -1:
message = '1 day ago'
case 1:
message = 'in 1 day'
case 7:
message = 'in 1 week'
case -7:
message = '1 week ago'
case -14 | -21:
message = f'{int(days / -7)} weeks ago'
case 14 | 21:
message = f'in {int(days / 7)} weeks'
case _ if 1 < days < 21:
message = f'in {days} days'
case _ if days < -1:
message = f'{days * -1} days ago'
case _:
message = f'{due_date}'
return jsonify(message=message)
if __name__ == '__main__':
app.run(port=8081)