FEATURE: Add registry API endpoint
This commit is contained in:
parent
95c49a1456
commit
aac4cf139e
|
@ -10,12 +10,13 @@ import os
|
|||
from mopidy import config, ext
|
||||
|
||||
from .frontend import PummeluffFrontend
|
||||
from .web import LatestHandler, RegisterHandler
|
||||
from .web import LatestHandler, RegistryHandler, RegisterHandler
|
||||
|
||||
|
||||
def app_factory(config, core):
|
||||
return [
|
||||
('/latest/', LatestHandler, {'core': core}),
|
||||
('/registry/', RegistryHandler, {'core': core}),
|
||||
('/register/', RegisterHandler, {'core': core}),
|
||||
]
|
||||
|
||||
|
|
|
@ -125,6 +125,26 @@ class Card(object):
|
|||
|
||||
return Card.all().get(uid)
|
||||
|
||||
@property
|
||||
def dict(self):
|
||||
'''
|
||||
Return the dict version of this card.
|
||||
|
||||
:return: The dict version of this card
|
||||
:rtype: dict
|
||||
'''
|
||||
d = {
|
||||
'uid': self.uid,
|
||||
'alias': self.alias,
|
||||
'type': self.get_type(),
|
||||
'parameter': self.parameter,
|
||||
}
|
||||
|
||||
if hasattr(self, 'scanned'):
|
||||
d['scanned'] = self.scanned
|
||||
|
||||
return d
|
||||
|
||||
|
||||
class TracklistCard(Card):
|
||||
'''
|
||||
|
|
|
@ -7,6 +7,7 @@ from __future__ import absolute_import, unicode_literals
|
|||
|
||||
__all__ = (
|
||||
'LatestHandler',
|
||||
'RegistryHandler',
|
||||
'RegisterHandler',
|
||||
)
|
||||
|
||||
|
@ -52,13 +53,43 @@ class LatestHandler(RequestHandler):
|
|||
data = {
|
||||
'success': True,
|
||||
'message': 'Scanned card found',
|
||||
'scanned': card.scanned,
|
||||
'uid': card.uid,
|
||||
'alias': card.alias,
|
||||
'type': card.get_type(),
|
||||
'parameter': card.parameter,
|
||||
}
|
||||
|
||||
data.update(card.dict)
|
||||
|
||||
self.set_header('Content-type', 'application/json')
|
||||
self.write(dumps(data))
|
||||
|
||||
|
||||
class RegistryHandler(RequestHandler):
|
||||
'''
|
||||
Request handler which returns all registered cards.
|
||||
'''
|
||||
last_scan = {}
|
||||
|
||||
def initialize(self, core):
|
||||
'''
|
||||
Initialize request handler with Mopidy core.
|
||||
|
||||
:param mopidy.core.Core mopidy_core: The mopidy core instance
|
||||
'''
|
||||
self.core = core
|
||||
|
||||
def get(self):
|
||||
'''
|
||||
Handle GET request.
|
||||
'''
|
||||
cards = []
|
||||
|
||||
for uid, card in Card.all().items():
|
||||
cards.append(card.dict)
|
||||
|
||||
data = {
|
||||
'success': True,
|
||||
'message': 'Registry successfully read',
|
||||
'cards': cards
|
||||
}
|
||||
|
||||
self.set_header('Content-type', 'application/json')
|
||||
self.write(dumps(data))
|
||||
|
||||
|
@ -88,12 +119,15 @@ class RegisterHandler(RequestHandler):
|
|||
card_type=self.get_argument('type')
|
||||
)
|
||||
|
||||
self.set_header('Content-type', 'application/json')
|
||||
self.write({
|
||||
data = {
|
||||
'success': True,
|
||||
'message': 'Card successfully registered',
|
||||
'card': str(card)
|
||||
})
|
||||
}
|
||||
|
||||
data.update(card.dict)
|
||||
|
||||
self.set_header('Content-type', 'application/json')
|
||||
self.write(dumps(data))
|
||||
|
||||
def put(self):
|
||||
'''
|
||||
|
|
Loading…
Reference in a new issue