Files
notifications-api/app/dao/complaint_dao.py
T

38 lines
962 B
Python
Raw Normal View History

from datetime import timedelta
2018-07-02 17:19:23 +01:00
from flask import current_app
from sqlalchemy import desc
from app import db
2021-04-14 07:11:01 +01:00
from app.dao.dao_utils import autocommit
from app.models import Complaint
from app.utils import get_midnight_in_utc
2021-04-14 07:11:01 +01:00
@autocommit
def save_complaint(complaint):
db.session.add(complaint)
2018-07-02 17:19:23 +01:00
def fetch_paginated_complaints(page=1):
2023-08-29 14:54:30 -07:00
return Complaint.query.order_by(desc(Complaint.created_at)).paginate(
page=page, per_page=current_app.config["PAGE_SIZE"]
2018-07-02 17:19:23 +01:00
)
def fetch_complaints_by_service(service_id):
2023-08-29 14:54:30 -07:00
return (
Complaint.query.filter_by(service_id=service_id)
.order_by(desc(Complaint.created_at))
.all()
)
def fetch_count_of_complaints(start_date, end_date):
start_date = get_midnight_in_utc(start_date)
end_date = get_midnight_in_utc(end_date + timedelta(days=1))
2023-08-29 14:54:30 -07:00
return Complaint.query.filter(
Complaint.created_at >= start_date, Complaint.created_at < end_date
).count()