def make_model(self, scope, hashkey, **kwargs):
        from app import db

        for arg in self.required_fields:
            if arg not in kwargs:
                raise InvalidArgumentsException()

        parent = kwargs.pop("parent", None)

        if "settings" in kwargs:
            try:
                kwargs["settings"] = json.loads(kwargs["settings"])
            except Exception:
                pass

        context, mod = get_context_for_scope(scope, hashkey)
        manager = ResourceManager(context)
        model = manager.create_resource(**kwargs)

        # If the resource specifies its parent, then automatically setup the link.
        if parent:
            parent_model = self.get_resource(parent)
            if parent_model:
                parent_model.related.append(model)
                db.session.commit()
        return model
Exemple #2
0
    def make_model(self, scope, hashkey, **kwargs):
        from app import db
        for arg in self.required_fields:
            if arg not in kwargs:
                raise InvalidArgumentsException()

        parent = kwargs.pop('parent', None)

        if 'settings' in kwargs:
            try:
                kwargs['settings'] = json.loads(kwargs['settings'])
            except Exception:
                pass

        context, mod = get_context_for_scope(scope, hashkey)
        manager = ResourceManager(context)
        model = manager.create_resource(**kwargs)

        # If the resource specifies its parent, then automatically setup the link.
        if parent:
            parent_model = self.get_resource(parent)
            if parent_model:
                parent_model.related.append(model)
                db.session.commit()
        return model