Coverage for mindsdb / integrations / handlers / zipcodebase_handler / zipcodebase.py: 0%

39 statements  

« prev     ^ index     » next       coverage.py v7.13.1, created at 2026-01-21 00:36 +0000

1import requests 

2 

3 

4class ZipCodeBaseClient: 

5 

6 def __init__(self, api_key): 

7 self.api_key = api_key 

8 self.base_endpoint = "https://app.zipcodebase.com/api/v1" 

9 

10 def make_request(self, url, params=None): 

11 headers = {'Content-type': 'application/json'} 

12 if self.api_key: 

13 headers['apikey'] = self.api_key 

14 resp = requests.get(url, headers=headers, params=params) 

15 content = {} 

16 if resp.status_code == 200: 

17 content = {'content': resp.json(), 'code': 200} 

18 else: 

19 content = {'content': {}, 'code': resp.status_code, 'error': resp.text} 

20 return content 

21 

22 def code_to_location(self, codes): 

23 url = f'{self.base_endpoint}/search' 

24 params = ( 

25 ("codes", codes), 

26 ) 

27 return self.make_request(url, params) 

28 

29 def codes_within_radius(self, code, radius, country, unit): 

30 url = f'{self.base_endpoint}/radius' 

31 params = ( 

32 ("code", code), 

33 ("radius", radius), 

34 ("country", country), 

35 ("unit", unit), 

36 ) 

37 return self.make_request(url, params) 

38 

39 def codes_by_city(self, city, country, limit): 

40 url = f'{self.base_endpoint}/code/city' 

41 params = ( 

42 ("city", city), 

43 ("country", country), 

44 ("limit", limit), 

45 ) 

46 return self.make_request(url, params) 

47 

48 def codes_by_state(self, state, country, limit): 

49 url = f'{self.base_endpoint}/code/state' 

50 params = ( 

51 ("state_name", state), 

52 ("country", country), 

53 ("limit", limit), 

54 ) 

55 return self.make_request(url, params) 

56 

57 def states_by_country(self, country): 

58 url = f'{self.base_endpoint}/country/province' 

59 params = ( 

60 ("country", country), 

61 ) 

62 return self.make_request(url, params) 

63 

64 def remaining_requests(self): 

65 url = f'{self.base_endpoint}/status' 

66 params = () 

67 return self.make_request(url, params)