Skip to content
Snippets Groups Projects
service.py 2.75 KiB
Newer Older
  • Learn to ignore specific revisions
  • David Trattnig's avatar
    David Trattnig committed
    #
    # Aura Engine API (https://gitlab.servus.at/aura/engine-api)
    #
    # Copyright (C) 2020 - The Aura Engine Team.
    #
    # This program is free software: you can redistribute it and/or modify
    # it under the terms of the GNU Affero General Public License as published by
    # the Free Software Foundation, either version 3 of the License, or
    # (at your option) any later version.
    #
    # This program is distributed in the hope that it will be useful,
    # but WITHOUT ANY WARRANTY; without even the implied warranty of
    # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    # GNU Affero General Public License for more details.
    #
    # You should have received a copy of the GNU Affero General Public License
    # along with this program.  If not, see <http://www.gnu.org/licenses/>.
    
    
    David Trattnig's avatar
    David Trattnig committed
    
    
    import datetime
    
    David Trattnig's avatar
    David Trattnig committed
    
    
    from models import PlayLog, TrackServiceSchema
    
    David Trattnig's avatar
    David Trattnig committed
    
    
    
    class ApiService():
        """
        Service handling API actions.
        """
    
        config = None
        logger = None
    
    
        def __init__(self, config, logger):
            self.config = config
            self.logger = logger
    
    
        def current_track(self):  
            """
            Retrieves the currently playing track.  
    
            Returns:
                (PlayLogEntry)
            """
            track = PlayLog.select_current()
            track_schema = TrackServiceSchema()
            return track_schema.dump(track)
    
    
        def list_tracks(self, offset=None, limit=None):  
            """
            Lists the most recent track-service entries.  
    
            Args:
                offset (Integer): The number of items to skip before starting to collect the result set
                limit (Integer): The numbers of items to return
    
            Returns:
                (List[PlayLogEntry])
            """
            return "some list of tracks"
    
    
        def clock_info(self):
            """
            Retrieves the currently playing playlist.  
            """
            return "current playlist"
    
    David Trattnig's avatar
    David Trattnig committed
    
    
        def activate_engine(self, engine_number):
            """
            Activates one engine and deactivates the other
    
            Args:
                engine_number (Integer): Number of the engine
            """
            return 'do some magic!'
    
    
        def get_active_engine(self):
            """
            Retrieves the status entry of the currently active engine
    
            Returns:
                StatusEntry
            """
            return 'do some magic!'
    
    
        def get_engine_health(self, engine_number):
            """
            Retrieves the most recent health info of the requested engine
    
            Args:
                engine_number (Integer): Number of the engine
    
    
            Returns:
                (HealthInfo)
            """
            return 'do some magic!'
    
    
        def log_engine_health(self, engine_number):
            """
            Logs another health entry for the given engine
    
            Args:
                engine_number (Integer): Number of the engine
    
            """
            return 'do some magic!'