Skip to content

Commit 39f5221

Browse files
committed
refactor: TT-352 solving merge conflicts
2 parents 1006410 + 0e9f8f6 commit 39f5221

File tree

7 files changed

+29
-29
lines changed

7 files changed

+29
-29
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
<!--next-version-placeholder-->
44

5+
## v0.39.0 (2021-10-04)
6+
### Feature
7+
* TT-353 Create V2 Activities DAO ([#320](https://github.com/ioet/time-tracker-backend/issues/320)) ([`328ad43`](https://github.com/ioet/time-tracker-backend/commit/328ad43e3058de3c824b2feec47530bee5b23823))
8+
59
## v0.38.0 (2021-09-08)
610
### Feature
711
* TT-326 Get recent projects feature added ([#319](https://github.com/ioet/time-tracker-backend/issues/319)) ([`8e2aadc`](https://github.com/ioet/time-tracker-backend/commit/8e2aadc0937d3a26752b7fb8a1dd837af2f6d6a0))
Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,30 @@
11
from V2.source.daos.activities_dao import ActivitiesDao
22
from V2.source.dtos.activity import Activity
3+
import dataclasses
34
import json
45
import typing
56

6-
77
class ActivitiesJsonDao(ActivitiesDao):
88
def __init__(self, json_data_file_path: str):
99
self.json_data_file_path = json_data_file_path
10-
self.activity_keys = Activity.__dataclass_fields__.keys()
10+
self.activity_keys = [
11+
field.name for field in dataclasses.fields(Activity)
12+
]
1113

1214
def get_by_id(self, activity_id: str) -> Activity:
13-
activities_grouped_by_id = {
15+
activity = {
1416
activity.get('id'): activity
1517
for activity in self.__get_activities_from_file()
16-
}
17-
activity = activities_grouped_by_id.get(activity_id)
18-
activity_dto = (
19-
self.__create_activity_dto(activity) if activity else None
20-
)
18+
}.get(activity_id)
2119

22-
return activity_dto
20+
return self.__create_activity_dto(activity) if activity else None
2321

2422
def get_all(self) -> typing.List[Activity]:
25-
all_activities = self.__get_activities_from_file()
26-
activity_dtos = [
27-
self.__create_activity_dto(activity) for activity in all_activities
23+
return [
24+
self.__create_activity_dto(activity)
25+
for activity in self.__get_activities_from_file()
2826
]
2927

30-
return activity_dtos
31-
3228
def __get_activities_from_file(self) -> typing.List[dict]:
3329
try:
3430
file = open(self.json_data_file_path)
@@ -42,5 +38,4 @@ def __get_activities_from_file(self) -> typing.List[dict]:
4238

4339
def __create_activity_dto(self, activity: dict) -> Activity:
4440
activity = {key: activity.get(key) for key in self.activity_keys}
45-
activity_dto = Activity(**activity)
46-
return activity_dto
41+
return Activity(**activity)

V2/source/entry_points/flask_api/__init__.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
from flask import Flask
22
from flask_restplus import Namespace, Resource, Api
33
from http import HTTPStatus
4-
54
from . import activities_endpoints
65

76

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1+
from V2.source import use_cases
12
from flask_restplus import Resource
3+
from http import HTTPStatus
24

3-
from V2.source import use_cases
45

56
class Activities(Resource):
67
def get(self):
@@ -10,7 +11,10 @@ def get(self):
1011

1112

1213
class Activity(Resource):
13-
def get(self, activity_id: str):
14-
activity_dto = use_cases.get_activity_by_id(activity_id)
15-
activity = activity_dto.__dict__
16-
return activity
14+
def get(self, activity_id: str):
15+
try:
16+
activities_dto = use_cases.get_activity_by_id(activity_id)
17+
activity = activities_dto.__dict__
18+
return activity
19+
except AttributeError:
20+
return {'message': 'Activity not found'}, HTTPStatus.NOT_FOUND

V2/tests/entry_points/flask_api/activities_endpoints_test.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
1+
from V2.source.entry_points.flask_api import create_app
2+
from V2.source import use_cases
3+
from V2.source.dtos.activity import Activity
14
import json
2-
35
import pytest
46
from http import HTTPStatus
57
from pytest_mock import MockFixture
68
from flask.testing import FlaskClient
79
from faker import Faker
810
from werkzeug.exceptions import NotFound
911

10-
from V2.source.entry_points.flask_api import create_app
11-
from V2.source import use_cases
12-
from V2.source.dtos.activity import Activity
13-
1412
fake = Faker()
1513

1614
valid_id = fake.uuid4()

V2/tests/services/activity_service_test.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ def test__get_all__uses_the_activity_dao__to_retrieve_activities(mocker):
1515
assert expected_activities == actual_activities
1616

1717

18-
def test__get_by_id__uses_the_activity_dao__to_retrieve_one_ativity(mocker):
18+
def test__get_by_id__uses_the_activity_dao__to_retrieve_one_activity(mocker):
1919
expected_activity = mocker.Mock()
2020
activity_dao = mocker.Mock(
2121
get_by_id=mocker.Mock(return_value=expected_activity)

time_tracker_api/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = '0.38.0'
1+
__version__ = '0.39.0'

0 commit comments

Comments
 (0)