浏览代码

add api /api/space/:id/members

meolu 6 年之前
父节点
当前提交
62cf30d1ea
共有 3 个文件被更改,包括 26 次插入10 次删除
  1. 22 7
      walle/api/space.py
  2. 1 3
      walle/model/user.py
  3. 3 0
      walle/service/deployer.py

+ 22 - 7
walle/api/space.py

@@ -8,17 +8,20 @@
     :author: wushuiyong@walle-web.io
 """
 
-from flask import request, current_app, session
+import json
+
+from flask import request, abort
 from walle.api.api import SecurityResource
 from walle.form.space import SpaceForm
 from walle.model.user import SpaceModel, MemberModel, UserModel
-import json
-from walle.service.rbac.role import *
 from walle.service.extensions import permission
+from walle.service.rbac.role import *
+
 
 class SpaceAPI(SecurityResource):
+    actions = ['members', 'item', 'list']
 
-    def get(self, space_id=None):
+    def get(self, space_id=None, action=None):
         """
         fetch space list or one item
         /space/<int:space_id>
@@ -26,10 +29,16 @@ class SpaceAPI(SecurityResource):
         :return:
         """
         super(SpaceAPI, self).get()
+        if action is None:
+            action = 'item' if space_id else 'list'
 
-        return self.item(space_id) if space_id else self.list()
+        if action in self.actions:
+            self_action = getattr(self, action.lower(), None)
+            return self_action(space_id)
+        else:
+            abort(404)
 
-    def list(self):
+    def list(self, space_id=None):
         """
         fetch space list
 
@@ -133,4 +142,10 @@ class SpaceAPI(SecurityResource):
         current_user.last_space = space_id
         current_user.save()
         UserModel.fresh_session()
-        return self.render_json()
+        return self.render_json()
+
+    def members(self, space_id):
+        page = int(request.args.get('page', 1))
+        size = int(request.args.get('size', 10))
+        members = MemberModel(group_id=space_id).members(page=page, size=size)
+        return self.render_json(data=members)

+ 1 - 3
walle/model/user.py

@@ -701,7 +701,7 @@ class MemberModel(SurrogatePK, Model):
 
         return ret
 
-    def members(self, group_id=None, project_id=None):
+    def members(self, group_id=None, project_id=None, page=1, size=10):
         """
         获取单条记录
         :param role_id:
@@ -718,8 +718,6 @@ class MemberModel(SurrogatePK, Model):
         }
 
         # TODO
-        page = 1
-        size = 10
         groups, count = MemberModel.query_paginate(page=page, limit=size, filter_name_dict=filters)
 
         user_ids = []

+ 3 - 0
walle/service/deployer.py

@@ -75,6 +75,9 @@ class Deployer:
             self.project_id = project_id
             self.project_info = ProjectModel(id=project_id).item()
 
+        # start to deploy
+
+
     def config(self):
         return {'task_id': self.task_id, 'user_id': self.user_id, 'stage': self.stage, 'sequence': self.sequence, 'console': self.console}