Prechádzať zdrojové kódy

New route for selected users states

Hal De 3 rokov pred
rodič
commit
ae5cf52480
1 zmenil súbory, kde vykonal 24 pridanie a 3 odobranie
  1. 24 3
      app/app.py

+ 24 - 3
app/app.py

@@ -836,11 +836,32 @@ class UsersStates(Resource):
     if not request.admin:
       abort(401)
     #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())
 
+@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')
 class UserState(Resource):
   @authRequired