Add ability to unregister mobile devices

This commit is contained in:
JonnyWong16 2017-03-28 21:44:18 -07:00
parent f60c978d80
commit ddf671abd1
6 changed files with 133 additions and 2 deletions

View file

@ -372,14 +372,18 @@ class API2:
values = {'device_name': device_name}
try:
db.upsert(table_name='mobile_devices', key_dict=keys, value_dict=values)
result = db.upsert(table_name='mobile_devices', key_dict=keys, value_dict=values)
except Exception as e:
logger.warn(u"PlexPy APIv2 :: Failed to register mobile device in the database: %s." % e)
self._api_msg = 'Device registartion failed: database error.'
self._api_result_type = 'error'
return
logger.info(u"PlexPy APIv2 :: Registered mobile device in the database: %s." % device_name)
if result == 'insert':
logger.info(u"PlexPy APIv2 :: Registered mobile device in the database: %s." % device_name)
else:
logger.debug(u"PlexPy APIv2 :: Re-registered mobile device in the database: %s." % device_name)
self._api_msg = 'Device registration successful.'
self._api_result_type = 'success'
return

View file

@ -548,6 +548,17 @@ def blacklist_logger():
logger._BLACKLIST_WORDS.extend(blacklist)
def delete_mobile_device(device_id=None):
monitor_db = database.MonitorDatabase()
if device_id:
logger.debug(u"PlexPy Notifiers :: Deleting device_id %s from the database." % device_id)
result = monitor_db.action('DELETE FROM mobile_devices WHERE device_id = ?', [device_id])
return True
else:
return False
class PrettyMetadata(object):
def __init__(self, parameters):
self.parameters = parameters

View file

@ -3194,6 +3194,37 @@ class WebInterface(object):
cherrypy.response.status = 200
@cherrypy.expose
@requireAuth(member_of("admin"))
def get_mobile_devices_table(self, **kwargs):
result = notifiers.ANDROIDAPP().get_devices()
devices_list = [{'device_id': id, 'device_name': name} for id, name in result.iteritems()]
return serve_template(templatename="mobile_devices_table.html", devices_list=devices_list)
@cherrypy.expose
@cherrypy.tools.json_out()
@requireAuth(member_of("admin"))
@addtoapi()
def delete_mobile_device(self, device_id=None, **kwargs):
""" Remove a mobile device from the database.
```
Required parameters:
device_id (int): The device to delete
Optional parameters:
None
Returns:
None
```
"""
result = notifiers.delete_mobile_device(device_id=device_id)
if result:
return {'result': 'success', 'message': 'Device deleted successfully.'}
else:
return {'result': 'error', 'message': 'Failed to delete device.'}
@cherrypy.expose
@requireAuth(member_of("admin"))
@addtoapi()