Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
refactor: TT-358 Changing time tracker backend app skeleton
  • Loading branch information
Andrés Soto committed Oct 15, 2021
commit c878eb30322b301275ccd717b124c3f2a81f8dd8
1 change: 1 addition & 0 deletions V2/azure_time_tracker/activities/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from .application import main, create_app
2 changes: 2 additions & 0 deletions V2/azure_time_tracker/activities/application/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
from .azure_functions import main
from .flask_api import create_app
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from .activities import main
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
from activities.infrastructure import ActivitiesJsonDao
from activities.domain import ActivityService
from activities.domain import Activity
from activities.domain import use_cases

import azure.functions as func
import json
import logging

JSON_PATH = 'activities/infrastructure/data_persistence/activities_data.json'


def main(req: func.HttpRequest) -> func.HttpResponse:
logging.info(
'Python HTTP trigger function processed a request to get an activity.'
)
activity_id = req.route_params.get('id')
status_code = 200

if activity_id:
response = get_by_id(activity_id)
if response == b'Not Found':
status_code = 404
else:
response = get_all()

return func.HttpResponse(
body=response, status_code=status_code, mimetype="application/json"
)


def get_by_id(activity_id: str) -> str:
activity_use_case = use_cases.GetActivityUseCase(
create_activity_service(JSON_PATH)
)
activity = activity_use_case.get_activity_by_id(activity_id)

return json.dumps(activity.__dict__) if activity else b'Not Found'


def get_all() -> str:
activities_use_case = use_cases.GetActivitiesUseCase(
create_activity_service(JSON_PATH)
)
return json.dumps(
[
activity.__dict__
for activity in activities_use_case.get_activities()
]
)


def create_activity_service(path: str):
activity_json = ActivitiesJsonDao(path)
return ActivityService(activity_json)
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
activities:
handler: azure_functions/activities/activities.main
handler: activities/application/azure_functions/activities.main
events:
- http: true
x-azure-settings:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
from time_tracker.source.daos.activities_json_dao import ActivitiesJsonDao
from time_tracker.source.services.activity_service import ActivityService
from time_tracker.source import use_cases
from activities.infrastructure import ActivitiesJsonDao
from activities.domain import ActivityService
from activities.domain import use_cases
from flask_restplus import Resource
from http import HTTPStatus

JSON_PATH = 'V2/azure_time_tracker/time_tracker/source/activities_data.json'
JSON_PATH = 'V2/azure_time_tracker/activities/infrastructure/data_persistence/activities_data.json'


class Activities(Resource):
Expand Down
4 changes: 4 additions & 0 deletions V2/azure_time_tracker/activities/domain/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
from .entities import Activity
from .persistence_contracts import ActivitiesDao
from .services import ActivityService
from .use_cases import GetActivitiesUseCase, GetActivityUseCase
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from .activity import Activity
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from .activities_dao import ActivitiesDao
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from time_tracker.source.dtos.activity import Activity
from activities.domain import Activity
import abc
import typing

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from .activity import ActivityService
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from time_tracker.source.daos.activities_dao import ActivitiesDao
from time_tracker.source.dtos.activity import Activity
from activities.domain import ActivitiesDao
from activities.domain import Activity
import typing


Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from time_tracker.source.services.activity_service import ActivityService
from time_tracker.source.dtos.activity import Activity
from activities.domain import ActivityService
from activities.domain import Activity
import typing


Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from time_tracker.source.services.activity_service import ActivityService
from time_tracker.source.dtos.activity import Activity
from activities.domain import ActivityService
from activities.domain import Activity


class GetActivityUseCase:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from .data_persistence import ActivitiesJsonDao
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from .activities_json_dao import ActivitiesJsonDao
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from time_tracker.source.daos.activities_dao import ActivitiesDao
from time_tracker.source.dtos.activity import Activity
from activities.domain import ActivitiesDao
from activities.domain import Activity
import dataclasses
import json
import typing
Expand Down
47 changes: 0 additions & 47 deletions V2/azure_time_tracker/azure_functions/activities/activities.py

This file was deleted.

11 changes: 10 additions & 1 deletion V2/azure_time_tracker/serverless.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,13 @@ package:
- "!.git/**"

functions:
- ${file(azure_functions/activities/functions.yml)}
activities:
handler: activities/application/azure_functions/activities.main
events:
- http: true
x-azure-settings:
methods:
- GET
route: activities/{id:?}
authLevel: anonymous
# - ${file(activities/application/azure_functions/functions.yml)}
2 changes: 2 additions & 0 deletions requirements/time_tracker_api/prod.txt
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ PyJWT==1.7.1

#Azure
msal==1.3.0
azure-functions==1.7.2
azure-functions-worker==1.1.9

# Time utils
pytz==2019.3
Expand Down