# Copyright (c) 2019. Tobias Kurze """ This module provides functions related to object states through the API. """ from datetime import datetime from pprint import pprint from flask_jwt_extended import jwt_required from flask_restx import fields, Resource, inputs from backend import db, app from backend.api import api_state from backend.api.models import recorder_model, recorder_model_model, recorder_command_model, state_model from backend.models.recorder_model import Recorder, RecorderModel, RecorderCommand from backend.models.room_model import Room import backend.recorder_adapters as r_a # == @api_state.route('/') @api_state.response(404, 'Recorder not found') @api_state.param('id', 'The recorder identifier') class RecorderStateResource(Resource): @jwt_required @api_state.doc('get_recorder_state') @api_state.marshal_with(state_model, skip_none=False) def get(self, id): """Fetch a recorder given its identifier""" recorder = Recorder.query.get(id) if recorder is None: api_state.abort(404) return recorder @api_state.route('') class RecorderStateList(Resource): @jwt_required @api_state.doc('recorders') @api_state.marshal_list_with(recorder_model, skip_none=False) def get(self): """ List all recorders :return: recorders """ return Recorder.get_all()