Esempio n. 1
0
    def post(self, organisation_id):
        """
        """

        schema = NamespaceSchema()

        namespace_data = request.get_json()

        validated_namespace_data, errors = schema.load(namespace_data)

        if errors:
            return dict(status='fail', message=errors), 400

        organisation = Organisation.get_by_id(organisation_id)

        if not organisation:
            return dict(
                status='fail',
                message=f'Organisation with id {organisation_id} not found'
            ), 404

        name = validated_namespace_data.get('name')

        namespace = Namespace(name, organisation_id)
        saved = namespace.save()

        if not saved:
            return dict(status='fail', message='Internal Server Error'), 500

        new_namespace_data, errors = schema.dumps(namespace)

        return dict(status='success',
                    data=dict(namespace=json.loads(new_namespace_data))), 201
Esempio n. 2
0
    def delete(self, organisation_id):
        """
        """
        org_admin_schema = OrgAdminSchema()

        org_admin_data = request.get_json()

        validated_org_admin_data, errors =\
            org_admin_schema.load(org_admin_data)

        if errors:
            return dict(status='fail', message=errors), 400

        # Get User
        user = User.get_by_id(validated_org_admin_data.get('user_id', None))

        if not user:
            return dict(status='fail', message='User not found'), 404

        # Get organisation
        organisation = Organisation.get_by_id(organisation_id)

        if not organisation:
            return dict(status='fail', message='Organisation not found'), 404

        # removing user from organisation admins
        try:

            organisation.admins.remove(user)

        except Exception:
            return dict(status='fail',
                        message='Organisation Admin not found'), 404

        saved_org_admins = organisation.save()

        if not saved_org_admins:
            return dict(status='fail', message='Internal Server Error'), 500

        org_schema = OrganisationSchema()

        new_org_admin_data, errors = org_schema.dumps(organisation)

        return dict(
            status='success',
            data=dict(organisation_admins=json.loads(new_org_admin_data))), 200
    def post(self, organisation_id):
        """
        """

        org_member_schema = OrgMemberSchema()

        org_member_data = request.get_json()

        validated_org_member_data, errors = org_member_schema.load(
            org_member_data)

        if errors:
            return dict(status='fail', message=errors), 400

        # Get User
        user = User.get_by_id(validated_org_member_data.get('user_id', None))

        if not user:
            return dict(status='fail', message='User not found'), 404

        # Get organisation
        organisation = Organisation.get_by_id(organisation_id)

        if not organisation:
            return dict(status='fail', message='Organisation not found'), 404

        if user in organisation.members:
            return dict(status='fail', message='Member already exist'), 409

        # adding user to organisation members
        organisation.members.append(user)

        saved_org_member = organisation.save()

        user_schema = UserSchema()

        if not saved_org_member:
            return dict(status='fail', message='Internal Server Error'), 500

        new_org_member_data, errors = user_schema.dumps(user)

        return dict(
            status='success',
            data=dict(
                organisation_member=json.loads(new_org_member_data))), 201
Esempio n. 4
0
    def get(self, organisation_id):
        """
        """
        org_schema = OrganisationSchema(many=True)

        organisation = Organisation.get_by_id(organisation_id)

        if not organisation:
            return dict(status='fail', message='Organisation not found'), 404

        org_admins = organisation.admins

        org_admin_data, errors = org_schema.dumps(org_admins)

        if errors:
            return dict(status="fail", message="Internal Server Error"), 500

        return dict(
            status="success",
            data=dict(organisation_admins=json.loads(org_admin_data))), 200
Esempio n. 5
0
    def get(self, organisation_id):
        """
        """
        schema = NamespaceSchema(many=True)

        organisation = Organisation.get_by_id(organisation_id)

        if not organisation:
            return dict(
                status='fail',
                message=f'Organisation with id {organisation_id} not found'
            ), 404

        namespaces = Namespace.query.filter_by(organisation_id=organisation.id)

        namespace_data, errors = schema.dumps(namespaces)

        if errors:
            return dict(status='fail', message=errors), 500

        return dict(status='success',
                    data=dict(namespaces=json.loads(namespace_data))), 200