2017-11-09 10:32:39 +00:00
|
|
|
from app import db
|
2017-11-14 14:32:34 +00:00
|
|
|
from app.statsd_decorators import statsd
|
|
|
|
|
from app.dao.dao_utils import transactional
|
|
|
|
|
from app.models import StatsTemplateUsageByMonth, Template
|
2017-11-09 10:32:39 +00:00
|
|
|
|
|
|
|
|
|
2017-11-14 14:32:34 +00:00
|
|
|
@transactional
|
|
|
|
|
@statsd(namespace="dao")
|
2017-11-09 10:32:39 +00:00
|
|
|
def insert_or_update_stats_for_template(template_id, month, year, count):
|
|
|
|
|
result = db.session.query(
|
|
|
|
|
StatsTemplateUsageByMonth
|
|
|
|
|
).filter(
|
|
|
|
|
StatsTemplateUsageByMonth.template_id == template_id,
|
|
|
|
|
StatsTemplateUsageByMonth.month == month,
|
|
|
|
|
StatsTemplateUsageByMonth.year == year
|
|
|
|
|
).update(
|
|
|
|
|
{
|
|
|
|
|
'count': count
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
if result == 0:
|
2017-11-09 14:13:42 +00:00
|
|
|
monthly_stats = StatsTemplateUsageByMonth(
|
2017-11-09 10:32:39 +00:00
|
|
|
template_id=template_id,
|
|
|
|
|
month=month,
|
|
|
|
|
year=year,
|
|
|
|
|
count=count
|
|
|
|
|
)
|
2017-11-14 14:32:34 +00:00
|
|
|
|
2017-11-09 14:13:42 +00:00
|
|
|
db.session.add(monthly_stats)
|
2017-11-14 14:32:34 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
@statsd(namespace="dao")
|
2017-11-15 15:55:00 +00:00
|
|
|
def dao_get_template_usage_stats_by_service(service_id, year):
|
2017-11-14 14:32:34 +00:00
|
|
|
return db.session.query(
|
2017-11-15 15:55:00 +00:00
|
|
|
StatsTemplateUsageByMonth.template_id,
|
|
|
|
|
Template.name,
|
|
|
|
|
StatsTemplateUsageByMonth.month,
|
|
|
|
|
StatsTemplateUsageByMonth.year,
|
|
|
|
|
StatsTemplateUsageByMonth.count
|
2017-11-14 14:32:34 +00:00
|
|
|
).join(
|
|
|
|
|
Template, StatsTemplateUsageByMonth.template_id == Template.id
|
|
|
|
|
).filter(
|
2017-11-15 15:55:00 +00:00
|
|
|
Template.service_id == service_id,
|
|
|
|
|
StatsTemplateUsageByMonth.year == year
|
2017-11-14 14:32:34 +00:00
|
|
|
).all()
|