Skip to content

Commit cc6bcdd

Browse files
authored
Merge pull request #861 from ChildMindInstitute/release-20231116.2
Release 20231116.2
2 parents 26c37da + 0d4d82d commit cc6bcdd

36 files changed

Lines changed: 2022 additions & 1309 deletions

Pipfile

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ name = "pypi"
77
aioredis = "~=2.0.1"
88
alembic = "~=1.8.1"
99
asyncpg = "~=0.27.0"
10-
asynctest = "*"
10+
asynctest = "==0.13.0"
1111
boto3 = "==1.26.10"
1212
fastapi = "==0.87.0"
1313
# The latest version of the fastapi is not taken because of the issue
@@ -24,17 +24,19 @@ pydantic = {extras = ["email"], version = "~=1.10.2"}
2424
python-jose = {version = "~=3.3.0", extras = ["cryptography"]}
2525
python-multipart = "~=0.0.5"
2626
sentry-sdk = "~=1.6"
27-
sqlalchemy = {extras = ["asyncio"], version = "~=1.4.46"}
27+
sqlalchemy = {extras = ["asyncio"], version = "==1.4.49"}
2828
uvicorn = {extras = ["standard"], version = "==0.19"}
29-
aiohttp = "*"
30-
firebase-admin = "*"
31-
aio-pika = "*"
32-
pyld = "*"
33-
azure-storage-blob = "*"
34-
taskiq-fastapi = "*"
35-
taskiq-redis = "*"
36-
taskiq-aio-pika = "*"
29+
taskiq = {extras = ["reload"], version = "==0.9.1"}
30+
aiohttp = "==3.8.5"
31+
firebase-admin = "==6.2.0"
32+
aio-pika = "==9.3.0"
33+
pyld = "==2.0.3"
34+
azure-storage-blob = "==12.18.2"
35+
taskiq-fastapi = "==0.3.0"
36+
taskiq-redis = "==0.5.0"
37+
taskiq-aio-pika = "==0.4.0"
3738
sqlalchemy-utils = "==0.41.1"
39+
typer = {extras = ["all"], version = "==0.9.0"}
3840

3941
[dev-packages]
4042
black = "~=22.6"
@@ -78,9 +80,8 @@ pycryptodomex = "==3.9.7"
7880
psycopg2-binary = "==2.9.6"
7981
cachetools = "==5.3.0"
8082
pyld = "==2.0.3"
81-
types-requests = "*"
82-
taskiq = {extras = ["reload"], version = "*"}
83-
types-pytz = "*"
83+
types-requests = "==2.31.0.10"
84+
types-pytz = "==2023.3.1.1"
8485

8586
[requires]
8687
python_version = "3.10"

Pipfile.lock

Lines changed: 1140 additions & 1062 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/apps/answers/crud/answers.py

Lines changed: 15 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
Version,
3838
)
3939
from apps.answers.errors import AnswerNotFoundError
40-
from apps.applets.db.schemas import AppletHistorySchema, AppletSchema
40+
from apps.applets.db.schemas import AppletHistorySchema
4141
from apps.shared.filtering import Comparisons, FilterField, Filtering
4242
from apps.shared.paging import paging
4343
from infrastructure.database.crud import BaseCRUD
@@ -342,64 +342,6 @@ async def get_by_applet_activity_created_at(
342342
db_result = await self._execute(query)
343343
return db_result.scalars().all()
344344

345-
async def get_activity_flow_by_answer_id(
346-
self, answer_id: uuid.UUID
347-
) -> bool:
348-
query: Query = select(AnswerItemSchema, ActivityFlowHistoriesSchema)
349-
query = query.join(
350-
AnswerSchema, AnswerSchema.id == AnswerItemSchema.answer_id
351-
)
352-
query = query.join(
353-
ActivityFlowHistoriesSchema,
354-
ActivityFlowHistoriesSchema.id_version
355-
== AnswerSchema.flow_history_id,
356-
isouter=True,
357-
)
358-
query = query.where(AnswerItemSchema.is_assessment == False) # noqa
359-
query = query.where(AnswerSchema.id == answer_id)
360-
361-
db_result = await self._execute(query)
362-
(
363-
_,
364-
flow_history_schema,
365-
) = (
366-
db_result.first()
367-
) # type: AnswerItemSchema, ActivityFlowHistoriesSchema
368-
if not flow_history_schema:
369-
return False
370-
return flow_history_schema.is_single_report
371-
372-
async def get_applet_info_by_answer_id(
373-
self, answer: AnswerSchema
374-
) -> tuple[AppletHistorySchema, ActivityHistorySchema]:
375-
query: Query = select(
376-
AppletSchema,
377-
ActivityHistorySchema,
378-
)
379-
query = query.join(
380-
AppletHistorySchema,
381-
AppletHistorySchema.id == AppletSchema.id,
382-
isouter=True,
383-
)
384-
query = query.join(
385-
ActivityHistorySchema,
386-
and_(
387-
ActivityHistorySchema.applet_id
388-
== AppletHistorySchema.id_version,
389-
ActivityHistorySchema.id_version == answer.activity_history_id,
390-
),
391-
isouter=True,
392-
)
393-
query = query.where(
394-
and_(
395-
AppletSchema.id == answer.applet_id,
396-
AppletHistorySchema.version == answer.version,
397-
)
398-
)
399-
db_result = await self._execute(query)
400-
res = db_result.first()
401-
return res
402-
403345
async def get_activities_which_has_answer(
404346
self, activity_hist_ids: list[str], respondent_id: uuid.UUID | None
405347
) -> list[str]:
@@ -557,6 +499,20 @@ async def update_encrypted_fields(
557499

558500
await self._execute(query)
559501

502+
async def is_single_report_flow(self, answer_flow_id: str | None) -> bool:
503+
query: Query = select(ActivityFlowHistoriesSchema)
504+
query = query.where(
505+
ActivityFlowHistoriesSchema.id_version == answer_flow_id
506+
)
507+
db_result = await self._execute(query)
508+
db_result = db_result.first()
509+
flow_history_schema = (
510+
db_result[0] if db_result else None
511+
) # type: ActivityFlowHistoriesSchema | None
512+
if not flow_history_schema:
513+
return False
514+
return flow_history_schema.is_single_report
515+
560516
async def get_last_activity(
561517
self, respondent_ids: list[uuid.UUID], applet_id: uuid.UUID | None
562518
) -> dict[uuid.UUID, datetime.datetime]:

src/apps/answers/fixtures/arbitrary_server_answers.json

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -78,12 +78,12 @@
7878
"user_id": "6cde911e-8a57-47c0-b6b2-685b3664f418",
7979
"workspace_name": "eRPtCowGI0bcq4BEzB3lGA==",
8080
"is_modified": false,
81-
"database_uri": "postgresql+asyncpg://postgres:postgres@localhost:5432/test_arbitrary",
82-
"storage_type": "key",
83-
"storage_access_key": "key",
84-
"storage_secret_key": "DefaultEndpointsProtocol=https;AccountName=youraccountname;AccountKey=youraccountkey;EndpointSuffix=core.windows.net",
85-
"storage_region": "region",
86-
"storage_url": "url",
81+
"database_uri": "ehwQOnQu9X8higAEDMzDhH9HB5a0jO4FsgU/awOCwMgFccefd2//Ek6e0bKAwvauf6pwAS+PWDChFns1WIyL/z4oH52gEIKpYsBjUmznqYc=",
82+
"storage_type": "gEkn6yn8U2jb0U+Ln1KSAw==",
83+
"storage_access_key": "gEkn6yn8U2jb0U+Ln1KSAw==",
84+
"storage_secret_key": "ww3Y0xCDnjCMQk2Kbmzoh0PGFmo4B1FGaaO7w7h0cUDoLgzFgpIJyoko/xTilJzIMINMa1j4V722KLW1NugxGkjqb+f9bWXJ2ytObwgbw8z6RbqZsJNOp6GFzT+az9Wpq7IW82Lyjok7ctS7R63oGTdDXbOpKzIJtu0/YAGCaNE=",
85+
"storage_region": "5yruV8O3eukVP4fK/A5M6g==",
86+
"storage_url": "KJ3yVM/QBmlmDQXx3CuuTw==",
8787
"use_arbitrary": true
8888
},
8989
"note": {
@@ -142,7 +142,8 @@
142142
"meta": {
143143
"nickname": "f0dd4996-e0eb-461f-b2f8-ba873a674781",
144144
"secretUserId": "f0dd4996-e0eb-461f-b2f8-ba873a674781"
145-
}
145+
},
146+
"nickname": "hFywashKw+KlcDPazIy5QHz4AdkTOYkD28Q8+dpeDDA="
146147
}
147148
},
148149
{
@@ -180,7 +181,8 @@
180181
"meta": {
181182
"nickname": "f0dd4996-e0eb-461f-b2f8-ba873a674781",
182183
"secretUserId": "f0dd4996-e0eb-461f-b2f8-ba873a674781"
183-
}
184+
},
185+
"nickname": "hFywashKw+KlcDPazIy5QHz4AdkTOYkD28Q8+dpeDDA="
184186
}
185187
},
186188
{
@@ -200,15 +202,16 @@
200202
"theme_id": null,
201203
"version": "1.1.0",
202204
"user_id": "6cde911e-8a57-47c0-b6b2-685b3664f418",
203-
"report_server_ip": "",
204-
"report_public_key": "",
205-
"report_recipients": [],
205+
"report_server_ip": "https://report-server.l.trackmage.com",
206+
"report_public_key": "-----BEGIN PUBLIC KEY-----\n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\nW2EFUykoTbF2EHjXjAO5b60CAwEAAQ==\n-----END PUBLIC KEY-----",
207+
"report_recipients": ["tom@cmiml.net"],
206208
"report_include_user_id": false,
207209
"report_include_case_id": false,
208210
"report_email_body": "",
209211
"id_version": "92917a56-d586-4613-b7aa-991f2c4b15b8_1.1.0",
210212
"id": "92917a56-d586-4613-b7aa-991f2c4b15b8",
211-
"display_name": "Applet0"
213+
"display_name": "Applet0",
214+
"stream_enabled": false
212215
},
213216
"private_key": ""
214217
},
@@ -652,5 +655,3 @@
652655
}
653656

654657
]
655-
656-

src/apps/answers/fixtures/duplicate_activity_in_flow.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -372,7 +372,8 @@
372372
"meta": {
373373
"nickname": "f0dd4996-e0eb-461f-b2f8-ba873a674781",
374374
"secretUserId": "f0dd4996-e0eb-461f-b2f8-ba873a674781"
375-
}
375+
},
376+
"nickname": "hFywashKw+KlcDPazIy5QHz4AdkTOYkD28Q8+dpeDDA="
376377
}
377378
}
378379
]

0 commit comments

Comments
 (0)