Ejemplo n.º 1
0
    def post(self, **kwargs):
        """创建轻应用
          ---
          tags:
            - 应用
          parameters:
            - name: title
              in: body
              type: string
              required: true
            - name: org_id
              in: body
              type: string
              required: true
            - name: description
              in: body
              type: string
              required: false
          responses:
            200:
              description: A list of colors (may be filtered by palette)
              examples:
                response: {"data": null, "message": "添加成功"}
        """
        org = db.session.query(Organization).filter(
            Organization.id == kwargs.get("org_id")).first()
        if not org:
            return json_response(message=f"组织ID错误", status=403)

        app_name = generate_uuid_len(7)

        app = Application(name=app_name,
                          admin_route=app_name,
                          api_route=app_name,
                          title=kwargs.get("title"),
                          description=kwargs.get("description", None),
                          icon="/app.png",
                          is_official=False,
                          own_org_id=org.id,
                          type=2,
                          visible=1)
        db.session.add(app)
        db.session.commit()

        index_menu = ApplicationMenus(application_id=app.id,
                                      name="首页",
                                      icon="",
                                      link="/light/" + app.admin_route,
                                      platform="pc,mobile",
                                      sort=1)

        org_app = OrgApplication(organization_id=org.id,
                                 application_id=app.id,
                                 status=1)

        db.session.add(index_menu)
        db.session.add(org_app)
        db.session.commit()

        return json_response(message="添加成功", data={"id": app.id})
Ejemplo n.º 2
0
    def post(self, **kwargs):
        """添加应用页面
          ---
          tags:
            - 轻应用
          parameters:
            - name: id
              in: body
              type: string
              required: true
        """
        app_id = kwargs.get('app_id')
        app = db.session.query(Application).filter(
            Application.id == app_id).first()

        if not app:
            return json_response(message="找不到应用", status=404)

        direction = kwargs.get('direction')
        key = generate_uuid_len(7)

        page = Page(
            key=key,
            title=kwargs.get('title'),
            application_id=app.id,
            direction=Page.string_to_direction_type(direction),
        )

        db.session.add(page)
        db.session.commit()

        return json_response(message="添加成功", data={"id": page.id})
Ejemplo n.º 3
0
    def post(self, page_id, **kwargs):
        """页面分享
           ---
           tags:
             - 分享
           parameters:
           responses:
             200:
               examples:
                 response: {"data": null, "message": "添加成功"}
         """
        user = get_current_user()
        page, org_id = allow_access_page(page_id, user.id)

        if not page or page.__class__.__name__ != "Page":
            return page

        share = db.session.query(SharePage).filter(SharePage.page_id == page_id).first()
        key = generate_uuid_len(6)
        password = generate_uuid_len(6)

        if not share:
            share = SharePage(
                page_id=page.id,
                key=key,
                password=password,
                type=kwargs.get("type"),
                create_user_id=user.id,
                org_id=org_id
            )
        else:
            share.type = kwargs.get("type")

        if type == ShareType.password:
            share.password = VerifyCodeImg.get_random_str()

        db.session.add(share)
        db.session.commit()

        return json_response(message="分享成功", data={
            "id": share.id,
            "key": share.key,
            "password": share.password
        })