(self)
| 185 | return members |
| 186 | |
| 187 | def get_members_data(self) -> Dict[str, Any]: |
| 188 | result: Dict[str, Any] = {} |
| 189 | self.log.debug( |
| 190 | f"get_members_data called on {self.url}, has_members={self.has_members}" |
| 191 | ) |
| 192 | |
| 193 | if self.has_members: |
| 194 | self.log.debug( |
| 195 | f'Endpoint {self.url} has Members array: {self.data.get("Members", [])}' |
| 196 | ) |
| 197 | members_endpoints = self.get_members_endpoints() |
| 198 | |
| 199 | if not members_endpoints: |
| 200 | self.log.warning( |
| 201 | f"Endpoint {self.url} has Members array but no valid members after filtering. " |
| 202 | f"Using endpoint itself as singleton resource." |
| 203 | ) |
| 204 | if self.data: |
| 205 | name = self.get_name(self.url) |
| 206 | result[name] = self.data |
| 207 | else: |
| 208 | for member, endpoint_url in members_endpoints.items(): |
| 209 | self.log.debug( |
| 210 | f"Fetching data for member: {member} at {endpoint_url}" |
| 211 | ) |
| 212 | result[member] = self.query(endpoint_url) |
| 213 | else: |
| 214 | self.log.debug( |
| 215 | f"Endpoint {self.url} has no Members array, returning own data" |
| 216 | ) |
| 217 | if self.data: |
| 218 | name = self.get_name(self.url) |
| 219 | result[name] = self.data |
| 220 | else: |
| 221 | self.log.warning(f"Endpoint {self.url} has no members and empty data") |
| 222 | |
| 223 | return result |
| 224 | |
| 225 | @property |
| 226 | def has_members(self) -> bool: |
no test coverage detected