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

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""" 

10 

11from urllib.parse import quote, unquote 

12 

13 

14class SocketConfig(object): 

15 """ 

16 The SocketConfig class helps to configure the http communcation with our Backend System. 

17 """ 

18 

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 

34 

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 

54 

55 def getSession(self): 

56 """ 

57 Get API Session ID in use 

58 """ 

59 return self.__session 

60 

61 def getSystemEntity(self): 

62 """ 

63 Get API System Entity in use 

64 """ 

65 return self.__entity 

66 

67 def setLogin(self, value): 

68 """ 

69 Set account name to use 

70 """ 

71 self.__session = None 

72 self.__login = value 

73 return self 

74 

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 

82 

83 def setPassword(self, value): 

84 """ 

85 Set account password to use 

86 """ 

87 self.__session = None 

88 self.__pw = value 

89 return self 

90 

91 def setRemoteAddress(self, value): 

92 """ 

93 Set Remote IP Address to use 

94 """ 

95 self.__remoteaddr = value 

96 return self 

97 

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 

107 

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 

114 

115 def setUser(self, value): 

116 """ 

117 Set subuser account name (for subuser data view) 

118 """ 

119 self.__user = value 

120 return self