|
@@ -836,11 +836,32 @@ class UsersStates(Resource):
|
|
|
if not request.admin:
|
|
if not request.admin:
|
|
|
abort(401)
|
|
abort(401)
|
|
|
#app.logger.warning('request device: {}'.format(request.device))
|
|
#app.logger.warning('request device: {}'.format(request.device))
|
|
|
- usersCount = await refreshStatesCache()
|
|
|
|
|
- if usersCount == 0:
|
|
|
|
|
- return stateCacheEmpty()
|
|
|
|
|
|
|
+ #usersCount = await refreshStatesCache()
|
|
|
|
|
+ #if usersCount == 0:
|
|
|
|
|
+ # return stateCacheEmpty()
|
|
|
|
|
+
|
|
|
return successReply(getUsersStatesCombined())
|
|
return successReply(getUsersStatesCombined())
|
|
|
|
|
|
|
|
|
|
+@app.route('/users/states/<users_list>')
|
|
|
|
|
+class UsersStatesSelected(Resource):
|
|
|
|
|
+ @authRequired
|
|
|
|
|
+ @app.param('users_list', 'Comma separated list of users to query for combined states', 'path')
|
|
|
|
|
+ @app.response(HTTPStatus.OK, 'JSON reply with user:state map or error message')
|
|
|
|
|
+ @app.response(HTTPStatus.UNAUTHORIZED, 'Authorization required')
|
|
|
|
|
+ async def get(self, users_list):
|
|
|
|
|
+ '''Returns selected users with their combined states.
|
|
|
|
|
+ Possible states are: available, away, dnd, inuse, busy, unavailable, ringing
|
|
|
|
|
+ '''
|
|
|
|
|
+ if not request.admin:
|
|
|
|
|
+ abort(401)
|
|
|
|
|
+ users = users_list.split(',')
|
|
|
|
|
+ states = getUsersStatesCombined()
|
|
|
|
|
+ result={}
|
|
|
|
|
+ for user in states:
|
|
|
|
|
+ if user in users:
|
|
|
|
|
+ result[user] = states[user]
|
|
|
|
|
+ return successReply(result)
|
|
|
|
|
+
|
|
|
@app.route('/user/<user>/state')
|
|
@app.route('/user/<user>/state')
|
|
|
class UserState(Resource):
|
|
class UserState(Resource):
|
|
|
@authRequired
|
|
@authRequired
|