44
44
__version__ = "0.0.0-auto.0"
45
45
__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_Adafruit_IO.git"
46
46
47
+ CLIENT_HEADERS = {
48
+ 'User-Agent' : 'AIO-CircuitPython/{0}' .format (__version__ )
49
+ }
50
+
47
51
class RESTClient ():
48
52
"""
49
53
REST Client for interacting with the Adafruit IO API.
@@ -62,9 +66,17 @@ def __init__(self, adafruit_io_username, adafruit_io_key, wifi_manager):
62
66
self .wifi = wifi_manager
63
67
else :
64
68
raise TypeError ("This library requires a WiFiManager object." )
65
- self .http_headers = [{bytes ("X-AIO-KEY" , "utf-8" ):bytes (self .key , "utf-8" ),
66
- bytes ("Content-Type" , "utf-8" ):bytes ('application/json' , "utf-8" )},
67
- {bytes ("X-AIO-KEY" , "utf-8" ):bytes (self .key , "utf-8" )}]
69
+ self ._aio_headers = [{"X-AIO-KEY" :self .key ,
70
+ "Content-Type" :'application/json' },
71
+ {"X-AIO-KEY" :self .key ,}]
72
+
73
+ @staticmethod
74
+ def _create_headers (io_headers ):
75
+ """Creates http request headers.
76
+ """
77
+ headers = CLIENT_HEADERS .copy ()
78
+ headers .update (io_headers )
79
+ return headers
68
80
69
81
@staticmethod
70
82
def _create_data (data , metadata ):
@@ -103,7 +115,7 @@ def _post(self, path, payload):
103
115
response = self .wifi .post (
104
116
path ,
105
117
json = payload ,
106
- headers = self .http_headers [0 ])
118
+ headers = self ._create_headers ( self . _aio_headers [0 ]) )
107
119
self ._handle_error (response )
108
120
return response .json ()
109
121
@@ -115,7 +127,7 @@ def _get(self, path, return_text=False):
115
127
"""
116
128
response = self .wifi .get (
117
129
path ,
118
- headers = self .http_headers [1 ])
130
+ headers = self ._create_headers ( self . _aio_headers [1 ]) )
119
131
self ._handle_error (response )
120
132
if return_text :
121
133
return response .text
@@ -128,7 +140,7 @@ def _delete(self, path):
128
140
"""
129
141
response = self .wifi .delete (
130
142
path ,
131
- headers = self .http_headers [0 ])
143
+ headers = self ._create_headers ( self . _aio_headers [0 ]) )
132
144
self ._handle_error (response )
133
145
return response .json ()
134
146
0 commit comments