Beispiel #1
0
    def post(self, **kwargs):
        user = kwargs['user']
        json = request.json

        if 'items' not in json or len(json['items']) == 0:
            on_error(error_message="No items were provided")

        plan = Plan.from_json(json, user)
        items = self.item_repository.from_list(json['items'])

        if plan.starting_coordinate is not None:
            plan.city = get_city(plan.starting_coordinate.latitude, 
                                 plan.starting_coordinate.longitude)

        if plan.starting_address is None:
            plan.set_start_item(items[0])

        result = self.plan_repository.add_or_update(plan)

        if not result.success():
            on_error(error_message="Could not create plan", result=result)

        for item in items:
            result.add_child_result(plan.add_item(item))

        if not result.success():
            on_error(error_message="Could not add items to plan", result=result)

        self.plan_repository.save_changes()
        return plan
Beispiel #2
0
    def post(self, **kwargs):
        user = kwargs['user']
        json = request.json

        if 'categories' not in json or len(json['categories']) == 0:
            on_error(error_message="Categories were not provided")

        if 'plan' not in json:
            on_error(error_message="Plan details were not provided")

        categories = self.category_repository.get_from_list(json['categories'])
        plan = json['plan']

        plan = Plan.from_json(plan, user)
        self.plan_repository.expunge(plan)
        result, failed_categories = populate_sample_plan(plan, categories)

        if not result:
            return failed_categories, 400

        polyline = get_polyline(plan)
        plan_dict = plan.as_dict()
        plan_dict['polylines'] = polyline
        return plan_dict
Beispiel #3
0
 def create_from_dict(self, create_dict, user):
     return Plan.create_from_dict(create_dict, user)