Skip to content

Commit c878eb3

Browse files
author
Andrés Soto
committed
refactor: TT-358 Changing time tracker backend app skeleton
1 parent d9ab6a4 commit c878eb3

File tree

32 files changed

+94
-62
lines changed

32 files changed

+94
-62
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from .application import main, create_app
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
from .azure_functions import main
2+
from .flask_api import create_app
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from .activities import main
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
from activities.infrastructure import ActivitiesJsonDao
2+
from activities.domain import ActivityService
3+
from activities.domain import Activity
4+
from activities.domain import use_cases
5+
6+
import azure.functions as func
7+
import json
8+
import logging
9+
10+
JSON_PATH = 'activities/infrastructure/data_persistence/activities_data.json'
11+
12+
13+
def main(req: func.HttpRequest) -> func.HttpResponse:
14+
logging.info(
15+
'Python HTTP trigger function processed a request to get an activity.'
16+
)
17+
activity_id = req.route_params.get('id')
18+
status_code = 200
19+
20+
if activity_id:
21+
response = get_by_id(activity_id)
22+
if response == b'Not Found':
23+
status_code = 404
24+
else:
25+
response = get_all()
26+
27+
return func.HttpResponse(
28+
body=response, status_code=status_code, mimetype="application/json"
29+
)
30+
31+
32+
def get_by_id(activity_id: str) -> str:
33+
activity_use_case = use_cases.GetActivityUseCase(
34+
create_activity_service(JSON_PATH)
35+
)
36+
activity = activity_use_case.get_activity_by_id(activity_id)
37+
38+
return json.dumps(activity.__dict__) if activity else b'Not Found'
39+
40+
41+
def get_all() -> str:
42+
activities_use_case = use_cases.GetActivitiesUseCase(
43+
create_activity_service(JSON_PATH)
44+
)
45+
return json.dumps(
46+
[
47+
activity.__dict__
48+
for activity in activities_use_case.get_activities()
49+
]
50+
)
51+
52+
53+
def create_activity_service(path: str):
54+
activity_json = ActivitiesJsonDao(path)
55+
return ActivityService(activity_json)

V2/azure_time_tracker/azure_functions/activities/functions.yml renamed to V2/azure_time_tracker/activities/application/azure_functions/functions.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
activities:
2-
handler: azure_functions/activities/activities.main
2+
handler: activities/application/azure_functions/activities.main
33
events:
44
- http: true
55
x-azure-settings:

V2/azure_time_tracker/time_tracker/source/entry_points/flask_api/__init__.py renamed to V2/azure_time_tracker/activities/application/flask_api/__init__.py

File renamed without changes.

V2/azure_time_tracker/time_tracker/source/entry_points/flask_api/activities_endpoints.py renamed to V2/azure_time_tracker/activities/application/flask_api/activities_endpoints.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
from time_tracker.source.daos.activities_json_dao import ActivitiesJsonDao
2-
from time_tracker.source.services.activity_service import ActivityService
3-
from time_tracker.source import use_cases
1+
from activities.infrastructure import ActivitiesJsonDao
2+
from activities.domain import ActivityService
3+
from activities.domain import use_cases
44
from flask_restplus import Resource
55
from http import HTTPStatus
66

7-
JSON_PATH = 'V2/azure_time_tracker/time_tracker/source/activities_data.json'
7+
JSON_PATH = 'V2/azure_time_tracker/activities/infrastructure/data_persistence/activities_data.json'
88

99

1010
class Activities(Resource):
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
from .entities import Activity
2+
from .persistence_contracts import ActivitiesDao
3+
from .services import ActivityService
4+
from .use_cases import GetActivitiesUseCase, GetActivityUseCase
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from .activity import Activity

V2/azure_time_tracker/time_tracker/source/dtos/activity.py renamed to V2/azure_time_tracker/activities/domain/entities/activity.py

File renamed without changes.

0 commit comments

Comments
 (0)