| 892 | |
| 893 | |
| 894 | class KeyValuePairResourceManager(ResourceManager): |
| 895 | @add_auth_token_to_kwargs_from_env |
| 896 | def get_by_name(self, name, **kwargs): |
| 897 | |
| 898 | token = kwargs.get("token", None) |
| 899 | api_key = kwargs.get("api_key", None) |
| 900 | params = kwargs.get("params", {}) |
| 901 | |
| 902 | for k, v in six.iteritems(kwargs): |
| 903 | # Note: That's a special case to support api_key and token kwargs |
| 904 | if k not in ["token", "api_key", "params"]: |
| 905 | params[k] = v |
| 906 | |
| 907 | url = "/%s/%s/?%s" % ( |
| 908 | self.resource.get_url_path_name(), |
| 909 | name, |
| 910 | urllib.parse.urlencode(params), |
| 911 | ) |
| 912 | |
| 913 | if token: |
| 914 | response = self.client.get(url, token=token) |
| 915 | elif api_key: |
| 916 | response = self.client.get(url, api_key=api_key) |
| 917 | else: |
| 918 | response = self.client.get(url) |
| 919 | |
| 920 | if response.status_code == http_client.NOT_FOUND: |
| 921 | # for query and query_with_count |
| 922 | return [] |
| 923 | if response.status_code != http_client.OK: |
| 924 | self.handle_error(response) |
| 925 | |
| 926 | return self.resource.deserialize(parse_api_response(response)) |