def METHOD_NAME(self, response):
    # If crawling too fast, the server responds with a JSON
    # blob containing an error message. Schedule a retry.
    if "results" not in response.json()["data"]["locations"]:
        if "errorCode" in response.json()["data"]["locations"]:
            if response.json()["data"]["locations"]["errorCode"] == 500:
                yield get_retry_request(
                    response.request, spider=self, max_retry_times=5, reason="Retry after rate limiting error"
                )
                return
        # In case of an unhandled error, skip parsing.
        return
    # Parse the 15 (or fewer) locations from the response provided.
    for location in response.json()["data"]["locations"]["results"]:
        item = DictParser.METHOD_NAME(location)
        item["website"] = "https://location.westernunion.com/" + location["detailsUrl"]
        item["opening_hours"] = OpeningHours()
        hours_string = " ".join([f"{day}: {hours}" for (day, hours) in location["detail.hours"].items()])
        item["opening_hours"].add_ranges_from_string(hours_string)
        yield item
    # On the first response per radius search of a coordinate,
    # generate requests for all subsequent pages of results
    # found by the API within the 350km search radius.
    request_data = json.loads(response.request.body)
    current_page = int(request_data["variables"]["req"]["pageNumber"])
    total_pages = response.json()["data"]["locations"]["pageCount"]
    if current_page == 1 and total_pages > 1:
        for page_number in range(2, total_pages, 1):
            yield from self.request_page(
                request_data["variables"]["req"]["latitude"],
                request_data["variables"]["req"]["longitude"],
                page_number,
            )