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)