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
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
def create_from_dict(self, create_dict, user): return Plan.create_from_dict(create_dict, user)