55
66import azure .functions as func
77
8- from time_entries . _infrastructure import ActivitiesJsonDao
9- from time_entries . _domain import ActivityService , _use_cases , Activity
8+ from ... import _domain
9+ from ... import _infrastructure
1010
1111_JSON_PATH = (
1212 'time_entries/_infrastructure/_data_persistence/activities_data.json'
1313)
1414
1515
1616def create_activity (req : func .HttpRequest ) -> func .HttpResponse :
17+ activity_dao = _infrastructure .ActivitiesJsonDao (_JSON_PATH )
18+ activity_service = _domain .ActivityService (activity_dao )
19+ use_case = _domain ._use_cases .CreateActivityUseCase (activity_service )
1720 logging .info (
1821 'Python HTTP trigger function processed a request to create an activity.'
1922 )
2023 activity_data = req .get_json ()
21- # status_code = 200
22- # if _validate_activity(activity_data):
23- # response = _create_activity(activity_data)
24- # else:
25- # status_code = 404
26- # response = b'Not possible to create activity, attributes are not correct '
27-
24+ print (activity_data )
2825 validation_errors = _validate_activity (activity_data )
2926 if validation_errors :
3027 return func .HttpResponse (
3128 body = validation_errors , status_code = 400 , mimetype = "application/json"
3229 )
33-
34- activity_to_create = Activity (
35- id = None ,
30+ activity_to_create = _domain .Activity (
31+ id = None ,
3632 name = activity_data ['name' ],
3733 description = activity_data ['description' ],
38- status_code = activity_data ['status_code ' ],
39- deleted = activity_data ['delete ' ],
34+ status = activity_data ['status ' ],
35+ deleted = activity_data ['deleted ' ],
4036 tenant_id = activity_data ['tenant_id' ]
4137 )
4238
43- # created_activity = use_case.create_activity(activity_to_create)
44- created_activity = _create_activity ( activity_to_create )
45-
46- if not created_activity :
39+ created_activity = use_case .create_activity (activity_to_create . __dict__ )
40+ print ( "actividad mapeada" , activity_to_create )
41+ print ( "use case" , created_activity )
42+ if not create_activity :
4743 return func .HttpResponse (
4844 body = {'error' : 'activity could not be created' },
4945 status_code = 500 ,
5046 mimetype = "application/json" ,
5147 )
52-
5348 return func .HttpResponse (
5449 body = json .dumps (created_activity .__dict__ ),
5550 status_code = 201 ,
5651 mimetype = "application/json"
5752 )
5853
59- def _create_activity (activity_data : dict ) -> str :
60- activity_use_case = _use_cases .CreateActivityUseCase (
61- _create_activity_service (_JSON_PATH )
62- )
63- activity = activity_use_case .create_activity (activity_data )
64- return json .dumps (activity .__dict__ ) if activity else b'Not Found'
6554
6655def _validate_activity (activity_data : dict ) -> typing .List [str ]:
67- # def _validate_activity(activity_data: dict) -> bool:
68-
69- activity_fields = [field .name for field in dataclasses .fields (Activity )]
70-
71- # activity_keys = [field.name for field in dataclasses.fields(Activity)]
72- # new_activity_keys = list(activity_data.keys())
73- # return all(map(lambda key: key in activity_keys, new_activity_keys)) and len(activity_keys) == len(new_activity_keys)
56+ activity_fields = [field .name for field in dataclasses .fields (_domain .Activity )]
7457
7558 missing_keys = [field for field in activity_fields if field not in activity_data ]
7659 return [
7760 f'The { missing_key } key is missing in the input data'
7861 for missing_key in missing_keys
79- ]
80-
81- def _create_activity_service (path : str ):
82- activity_json = ActivitiesJsonDao (path )
83- return ActivityService (activity_json )
84-
85-
62+ ]
0 commit comments