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)
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)
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)
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()
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)
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()
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)
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)
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