Adding endpoint of metrics

This commit is contained in:
Cayo Puigdefabregas 2020-11-23 18:03:06 +01:00
parent 60579437bb
commit 6334120237
4 changed files with 47 additions and 2 deletions

View File

@ -15,6 +15,7 @@ from ereuse_devicehub.resources.documents import documents
from ereuse_devicehub.resources.enums import PriceSoftware from ereuse_devicehub.resources.enums import PriceSoftware
from ereuse_devicehub.resources.versions import versions from ereuse_devicehub.resources.versions import versions
from ereuse_devicehub.resources.allocate import definitions as allocate_def from ereuse_devicehub.resources.allocate import definitions as allocate_def
from ereuse_devicehub.resources.metric import definitions as metric_def
class DevicehubConfig(Config): class DevicehubConfig(Config):
@ -29,8 +30,9 @@ class DevicehubConfig(Config):
import_resource(documents), import_resource(documents),
import_resource(inventory), import_resource(inventory),
import_resource(versions), import_resource(versions),
import_resource(allocate_def)), import_resource(allocate_def),
) import_resource(metric_def),
),)
PASSWORD_SCHEMES = {'pbkdf2_sha256'} # type: Set[str] PASSWORD_SCHEMES = {'pbkdf2_sha256'} # type: Set[str]
DB_USER = config('DB_USER', 'dhub') DB_USER = config('DB_USER', 'dhub')
DB_PASSWORD = config('DB_PASSWORD', 'ereuse') DB_PASSWORD = config('DB_PASSWORD', 'ereuse')

View File

@ -0,0 +1,32 @@
from flask import request, g, jsonify
from ereuse_devicehub.resources.action import schemas
from teal.resource import Resource, View
from ereuse_devicehub.resources.action.models import Allocate
from ereuse_devicehub.resources.device import models as m
from ereuse_devicehub.resources.metric.schema import Metric
class MetricsView(View):
def find(self, args: dict):
self.params = request.get_json()
metrics = {
"allocateds": self.allocated(),
"live": 0,
"null": 0,
}
return jsonify(metrics)
def allocated(self):
return Allocate.query.filter(
Allocate.start_time.between(
self.params['start_time'], self.params['end_time']
)
).count()
class MetricDef(Resource):
__type__ = 'Metric'
VIEW = MetricsView
SCHEMA = Metric
AUTH = True

View File

@ -0,0 +1,11 @@
from teal.resource import Schema
from marshmallow.fields import DateTime
class Metric(Schema):
"""
This schema filter dates for search the metrics
"""
start_time = DateTime(data_key='start_time', required=True,
description="Start date for search metrics")
end_time = DateTime(data_key='end_time', required=True,
description="End date for search metrics")