def upload_image(self, request, id): obj = self.model.get_by_id(id) if not obj: return create_commercetools_response(request, status_code=404) obj = copy.deepcopy(obj) params = parse_request_params(UploadImageQuerySchema, request) target = _get_target_obj(obj, staged=params["staged"]) filename = params["filename"] variant = _get_variant(target, sku=params["sku"]) if not variant["images"]: variant["images"] = [] image_schema = ImageSchema() variant["images"].append( image_schema.dump( types.Image( url=f"cdn.commercetools.local/detail-{filename}", dimensions=types.ImageDimensions(w=500, h=500), ))) self.model.save(obj) return create_commercetools_response(request, json=obj)
def post_load(self, data, **kwargs): return types.ImageDimensions(**data)