@@ -20,65 +20,85 @@ def __init__(
20
20
:param edge_ip_address: is a required Launchpad header. It denotes the originating IP Address of the Edge User
21
21
:param edge_user: is an optional Launchpad header. It denotes the originating UserAgent of the Edge User requesting data.
22
22
"""
23
- self .edge_headers : Dict [str , str ] = {}
24
- self .__handle_edge_header_options (
25
- edge_id = edge_id , edge_ip_address = edge_ip_address , edge_user = edge_user
26
- )
23
+ self .headers : Optional [Dict [str , str ]] = None
24
+ if edge_id is not None and edge_ip_address is not None :
25
+ self .edge_headers (
26
+ edge_id = edge_id , edge_ip_address = edge_ip_address , edge_user = edge_user
27
+ )
27
28
28
- def __handle_edge_header_options (
29
+ def edge_headers (
29
30
self ,
30
- edge_id : Optional [str ],
31
+ edge_id : Optional [str ] = None ,
31
32
edge_ip_address : Optional [str ] = None ,
32
33
edge_user : Optional [str ] = None ,
33
34
):
34
- edge_headers = {}
35
- if edge_id is not None :
36
- edge_headers [X_POLYGON_EDGE_ID ] = edge_id
37
- if edge_ip_address is not None :
38
- edge_headers [X_POLYGON_EDGE_IP_ADDRESS ] = edge_ip_address
35
+ """
36
+ require_edge_headers adds required headers to the headers' dictionary
37
+ :param edge_id: is a required Launchpad header. It identifies the Edge User requesting data
38
+ :param edge_ip_address: is a required Launchpad header. It denotes the originating IP Address of the Edge User
39
+ requesting data
40
+ :param edge_user: user_agent: is an optional Launchpad header. It denotes the originating UserAgent of the Edge
41
+ User requesting data
42
+ :return ResponseOptionBuilder
43
+ """
44
+ if edge_id is None or edge_ip_address is None :
45
+ raise RequestOptionError (f"edge_id and edge_ip_address required." )
46
+
47
+ edge_headers : Dict [str , str ] = {
48
+ X_POLYGON_EDGE_ID : edge_id ,
49
+ X_POLYGON_EDGE_IP_ADDRESS : edge_ip_address ,
50
+ }
51
+
39
52
if edge_user is not None :
40
53
edge_headers [X_POLYGON_EDGE_USER_AGENT ] = edge_user
41
- self .__set_edge_headers (edge_headers )
42
54
43
- def __set_edge_headers (self , headers : Dict [str , str ]):
44
- self .edge_headers = headers
55
+ self ._add_to_edge_headers (** edge_headers )
45
56
46
- def __add_to_edge_headers (self , ** headers ):
47
- for k , v in headers .items ():
48
- self .edge_headers [k ] = v
57
+ return self
49
58
50
- def required_edge_headers (
59
+ def update_edge_header (
51
60
self ,
52
- edge_id : str ,
53
- edge_ip_address : str ,
61
+ edge_id : Optional [str ] = None ,
62
+ edge_ip_address : Optional [str ] = None ,
63
+ edge_user : Optional [str ] = None ,
54
64
):
55
65
"""
56
- require_edge_headers adds required headers to the headers' dictionary
66
+ used to change individual edge elements of underlying headers' dictionary.
57
67
:param edge_id: is a required Launchpad header. It identifies the Edge User requesting data
58
68
:param edge_ip_address: is a required Launchpad header. It denotes the originating IP Address of the Edge User
59
- requesting data.
60
- :return: RequestOptionBuilder
69
+ requesting data
70
+ :param edge_user: user_agent: is an optional Launchpad header. It denotes the originating UserAgent of the Edge
71
+ User requesting data
72
+ :return:
61
73
"""
62
- self .__add_to_edge_headers (
63
- ** {
64
- X_POLYGON_EDGE_ID : edge_id ,
65
- X_POLYGON_EDGE_IP_ADDRESS : edge_ip_address ,
66
- } # object destructure is needed for correct key formatting.
67
- )
68
- return self
74
+ if self .headers is None :
75
+ raise RequestOptionError (
76
+ "must set required fields prior to using update function."
77
+ )
78
+ edge_headers : Dict [str , str ] = {}
79
+
80
+ if edge_id is not None :
81
+ edge_headers [X_POLYGON_EDGE_ID ] = edge_id
82
+
83
+ if edge_ip_address is not None :
84
+ edge_headers [X_POLYGON_EDGE_IP_ADDRESS ] = edge_ip_address
85
+
86
+ if edge_user is not None :
87
+ edge_headers [X_POLYGON_EDGE_USER_AGENT ] = edge_user
88
+
89
+ self ._add_to_edge_headers (** edge_headers )
69
90
70
- def optional_edge_headers (
71
- self ,
72
- user_agent : str ,
73
- ):
74
- """
75
- edge_user_agent_header is used to add the optional X-Polygon-Edge-User-Agent key to the header dictionary
76
- :param user_agent: is an optional Launchpad header. It denotes the originating UserAgent of the Edge User requesting data.
77
- :return: RequestOptionBuilder
78
- """
79
- self .__add_to_edge_headers (
80
- ** {
81
- X_POLYGON_EDGE_USER_AGENT : user_agent ,
82
- }
83
- )
84
91
return self
92
+
93
+ def _add_to_edge_headers (self , ** headers ):
94
+ if self .headers is None :
95
+ self .headers = {}
96
+
97
+ for k , v in headers .items ():
98
+ self .headers [k ] = v
99
+
100
+
101
+ class RequestOptionError (Exception ):
102
+ """
103
+ Missing required option.
104
+ """
0 commit comments