def insert(username): """New Service""" form = ServiceForm(obj=request.json, prefix="service") form.category_ids.choices = CategoryHandler.list_for_select() if form.validate(): name = form.name.data description = form.description.data is_active = form.is_active.data category_ids = form.category_ids.data service = Service( username=username, name=name, description=description, is_active=is_active, updated=datetime.datetime.now(), created=datetime.datetime.now() ) db.session.add(service) try: db.session.commit() except: db.session.rollback() # return error message return {"error": "Error when adding an service"} # append the categories if len(category_ids) > 0: service.set_categoiry_ids(category_ids) try: db.session.commit() except: db.session.rollback() ServiceHandler.upload(service, form) # success, return new item return {"item": service.serialize()} # return form errors return {"errors": form.errors}