초기 커밋
This commit is contained in:
44
app/repositories/analytics_repo.py
Normal file
44
app/repositories/analytics_repo.py
Normal file
@@ -0,0 +1,44 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from datetime import datetime
|
||||
|
||||
from app.models.mongodb.analytics_result import AnalyticsResult
|
||||
|
||||
|
||||
class AnalyticsRepository:
|
||||
async def create(self, result: AnalyticsResult) -> AnalyticsResult:
|
||||
return await result.insert()
|
||||
|
||||
async def get_by_type(
|
||||
self,
|
||||
analysis_type: str,
|
||||
device_id: str | None = None,
|
||||
skip: int = 0,
|
||||
limit: int = 20,
|
||||
) -> list[AnalyticsResult]:
|
||||
query: dict = {"analysis_type": analysis_type}
|
||||
if device_id:
|
||||
query["device_id"] = device_id
|
||||
return await (
|
||||
AnalyticsResult.find(query)
|
||||
.sort("-created_at")
|
||||
.skip(skip)
|
||||
.limit(limit)
|
||||
.to_list()
|
||||
)
|
||||
|
||||
async def get_by_period(
|
||||
self,
|
||||
analysis_type: str,
|
||||
start: datetime,
|
||||
end: datetime,
|
||||
device_id: str | None = None,
|
||||
) -> list[AnalyticsResult]:
|
||||
query: dict = {
|
||||
"analysis_type": analysis_type,
|
||||
"period_start": {"$gte": start},
|
||||
"period_end": {"$lte": end},
|
||||
}
|
||||
if device_id:
|
||||
query["device_id"] = device_id
|
||||
return await AnalyticsResult.find(query).sort("-created_at").to_list()
|
||||
Reference in New Issue
Block a user