<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_endpoints_by_subscriber_id(self, subscriber_id):
 """ Search for all endpoints by a given subscriber """

        self._validate_subscriber_id(subscriber_id)

        url = "/notification/v1/endpoint?subscriber_id={}".format(
            subscriber_id)

        response = NWS_DAO().getURL(url, self._read_headers)

        if response.status != 200:
            raise DataFailureException(url, response.status, response.data)

        data = json.loads(response.data)

        endpoints = []
        for datum in data.get("Endpoints", []):
            endpoints.append(self._endpoint_from_json(datum))
        return endpoints