Skip to content
rotator.py 1.59 KiB
Newer Older
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

'''REST API for Rotator related operations'''

# Third-party modules
from flask import request

from .baseresource import ResourceDev
Davide Ricci's avatar
Davide Ricci committed

# @api.route("/rotator")
class Rotator(ResourceDev):
    '''Field derotator position.'''

    def get(self):
        '''Retrieve the field derotator position.'''
        res = {
Davide Ricci's avatar
Davide Ricci committed
            "response": self.dev.position,
            "error": self.dev.error,
        }
        return res


# @api.route("/rotator/movement")
class RotatorMovement(ResourceDev):
    '''Manage the field derotator position.'''

    def get(self):
        '''Check if the field derotator is moving.'''
        res = {
Davide Ricci's avatar
Davide Ricci committed
            "response": self.dev.is_moving,
            "error": self.dev.error,
        }
        return res

    def post(self):
        '''Set the field derotator to a new position.'''
        target = request.json
Davide Ricci's avatar
Davide Ricci committed
        self.dev.position = target
Davide Ricci's avatar
Davide Ricci committed
            "response": self.dev.position,
            "error": self.dev.error,
Davide Ricci's avatar
Davide Ricci committed

# @api.route("/connection")
class Connection(ResourceDev):
Davide Ricci's avatar
Davide Ricci committed
    '''Manage the connection to ASCOM.'''

    def get(self):
        '''Check if the rotator is connected.'''

        res = {
            "response": self.dev.connection,
            "error": self.dev.error,
        }
        return res

    def put(self):
        '''Connect or disconnect the rotator.'''

        connection = request.json
Davide Ricci's avatar
Davide Ricci committed
        self.dev.connection = connection
        res = {
            "response": self.dev.connection,
            "error": self.dev.error,
        }
        return res
Davide Ricci's avatar
Davide Ricci committed