コード例 #1
0
    def mutate(self, info, input):
        data = utils.input_to_dictionary(input)

        message = Message(**data)
        db.session.add(message)
        db.session.commit()

        return CreateMessage(message=message)
コード例 #2
0
    def mutate(self, info, input):
        data = utils.input_to_dictionary(input)

        recipe = db.session.query(Recipe).filter_by(id=data['id']).first()
        db.session.delete(recipe)
        db.session.commit()

        return DeleteRecipe(ok=True)
コード例 #3
0
    def mutate(self, info, input):
        data = input_to_dictionary(input)
        data['edited'] = datetime.utcnow()

        post = Post.query.filter_by(id=data['id'])
        post.update(data)
        db.session.commit()
        post = Post.filter_by(id=data['id']).first()

        return UpdatePost(post=post)
コード例 #4
0
ファイル: queries.py プロジェクト: mkm29/flaskql-starter
 def resolve_get_user(
     self: Type[ObjectType],
     info: Type[ResolveInfo],
     data: Type[attributes.UserInput],
 ) -> Type[ListType[User]]:
     query = User.get_query(info)
     data = input_to_dictionary(data)
     for key, value in data.items():
         query = query.filter(text(f"{key}='{value}'"))
     return query.first()
コード例 #5
0
ファイル: mutations.py プロジェクト: mkm29/flaskql-starter
 def mutate(self, info, data):
     data = input_to_dictionary(data)
     data.pop("project_id", None)
     project = models.Project(**data)
     try:
         DB_SESSION.add(project)
         DB_SESSION.commit()
     except SQLAlchemyError as e:
         DB_SESSION.rollback()
         raise DatabaseTransactionException(args=e.args, message=e._message)
     return CreateProject(project=project)
コード例 #6
0
ファイル: queries.py プロジェクト: mkm29/flaskql-starter
 def resolve_get_projects(
     self: Type[ObjectType],
     info: Type[ResolveInfo],
     data: Optional[Type[attributes.ProjectUsersInput]] = None,
 ) -> Type[ListType[Project]]:
     query = Project.get_query(info)
     if data:
         data = input_to_dictionary(data)
         for key, value in data.items():
             query = query.filter(text(f"{key}='{value}'"))
     return query.all()
コード例 #7
0
    def mutate(self, info, input):
        data = utils.input_to_dictionary(input)

        image = db.session.query(Image).filter_by(id=data['id']).first()
        filename = image.filename

        print("Deleting image: %s" % image)
        #Remove from database
        db.session.delete(image)
        db.session.commit()

        #Remove from filesystem
        utils.delete_image(filename)

        return DeleteImage(ok=True)
コード例 #8
0
    def mutate(self, info, input):
        data = utils.input_to_dictionary(input)

        print("Updating Recipe")
        print("input: %s" % input)
        images = []
        # Handle recipe images. If it is a list, save all. If singleton, save it.
        if ('recipeImages' in data.keys()
                and type(data['recipeImages']) is list):
            for recipe_image in data['recipeImages']:
                if recipe_image:
                    image_filename = utils.handle_image(recipe_image)
                    images.append(
                        Image(filename=image_filename,
                              date_added=datetime.datetime.now()))
            data.pop('recipeImages')
        elif ('recipeImages' in data.keys()
              and not type(data['recipeImages']) is None):
            images.append(
                Image(filename=utils.handle_image(data['recipeImages'])))
            data.pop('recipeImages')

        if ('bookImage' in data.keys() and not data['bookImage'] is None):
            data['book_image_path'] = utils.handle_image(data['bookImage'])

        data.pop('bookImage')

        # Find recipe category and add entry reference
        category = None
        if ('category' in data.keys() and not data['category'] is None):
            category = RecipeCategory.query.filter_by(
                name=data['category']).first()
            data.pop('category')
            data['id_recipe_category'] = category.id

        recipe = db.session.query(Recipe).filter_by(id=data['id'])
        recipe.update(data)
        db.session.commit()

        recipe = db.session.query(Recipe).filter_by(id=data['id']).first()
        for image in images:
            print(image)
            recipe.images.append(image)
        db.session.commit()

        return UpdateRecipe(recipe=recipe)
コード例 #9
0
ファイル: queries.py プロジェクト: mkm29/flaskql-starter
    def resolve_get_project_users(
        self: Type[ObjectType],
        info: Type[ResolveInfo],
        data: Type[attributes.ProjectUsersInput],
    ) -> Type[ListType[ProjectUserType]]:
        data = input_to_dictionary(data)
        # Get Project Attributes
        project_attrs = ['project_id', 'name', 'hours']
        project_query = Project.get_query(info)
        for key, value in data.items()[project_attrs]:
            project_query = project_query.filter(text(f"{key}='{value}'"))
        project = project_query.first()

        user_attrs = ['user_id', 'first_name', 'last_name', 'email']
        user_query = User.get_query(info)
        for key, value in data.items()[user_attrs]:
            user_query = user_query.filter(text(f"{key}='{value}'"))
        users = user_query.all()

        # Combine the 2
        project_users = ProjectUserType(project=project, users=users)
        return project_users