Example #1
0
    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}