Coverage for hexonet/apiconnector/socketconfig.py: 100%
50 statements
« prev ^ index » next coverage.py v7.3.2, created at 2023-11-09 09:07 +0000
« prev ^ index » next coverage.py v7.3.2, created at 2023-11-09 09:07 +0000
1# -*- coding: utf-8 -*-
2"""
3 hexonet.apiconnector.socketconfig
4 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5 This module covers all necessary functionality to
6 pre-configure http communication with our Backend System.
7 :copyright: © 2018 by HEXONET GmbH.
8 :license: MIT, see LICENSE for more details.
9"""
11from urllib.parse import quote, unquote
14class SocketConfig(object):
15 """
16 The SocketConfig class helps to configure the http communcation with our Backend System.
17 """
19 def __init__(self):
20 # API system entity. "54cd" for LIVE system; "1234" for OT&E system
21 self.__entity = None
22 # account name
23 self.__login = None
24 # one time password (2FA)
25 self.__otp = None
26 # account password
27 self.__pw = None
28 # remote ip address (ip filter)
29 self.__remoteaddr = None
30 # API session id
31 self.__session = None
32 # subuser account name (subuser specific data view)
33 self.__user = None
35 def getPOSTData(self):
36 """
37 Create POST data string out of connection data
38 """
39 data = ""
40 tpl = "{0}={1}&"
41 for key in [
42 "__entity",
43 "__login",
44 "__otp",
45 "__pw",
46 "__remoteaddr",
47 "__session",
48 "__user",
49 ]:
50 item = getattr(self, "_SocketConfig" + key)
51 if item is not None and item != "":
52 data += tpl.format(quote("s_" + key[2:]), quote(item))
53 return data
55 def getSession(self):
56 """
57 Get API Session ID in use
58 """
59 return self.__session
61 def getSystemEntity(self):
62 """
63 Get API System Entity in use
64 """
65 return self.__entity
67 def setLogin(self, value):
68 """
69 Set account name to use
70 """
71 self.__session = None
72 self.__login = value
73 return self
75 def setOTP(self, value):
76 """
77 Set one time password to use
78 """
79 self.__session = None
80 self.__otp = value
81 return self
83 def setPassword(self, value):
84 """
85 Set account password to use
86 """
87 self.__session = None
88 self.__pw = value
89 return self
91 def setRemoteAddress(self, value):
92 """
93 Set Remote IP Address to use
94 """
95 self.__remoteaddr = value
96 return self
98 def setSession(self, value):
99 """
100 Set API Session ID to use
101 """
102 self.__login = None
103 self.__pw = None
104 self.__otp = None
105 self.__session = value
106 return self
108 def setSystemEntity(self, value):
109 """
110 Set API System Entity to use. This is set to 54cd / LIVE System by default.
111 """
112 self.__entity = value
113 return self
115 def setUser(self, value):
116 """
117 Set subuser account name (for subuser data view)
118 """
119 self.__user = value
120 return self