oldaplib 0.2.6__tar.gz → 0.2.8__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. {oldaplib-0.2.6 → oldaplib-0.2.8}/PKG-INFO +1 -1
  2. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/connection.py +32 -6
  3. oldaplib-0.2.8/oldaplib/src/version.py +1 -0
  4. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/test/test_connection.py +9 -2
  5. {oldaplib-0.2.6 → oldaplib-0.2.8}/pyproject.toml +1 -1
  6. oldaplib-0.2.6/oldaplib/version.py +0 -1
  7. {oldaplib-0.2.6 → oldaplib-0.2.8}/README.md +0 -0
  8. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/__init__.py +0 -0
  9. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/apps/load_list.py +0 -0
  10. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/ontologies/admin-testing.trig +0 -0
  11. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/ontologies/admin.trig +0 -0
  12. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/ontologies/oldap.trig +0 -0
  13. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/ontologies/oldap.ttl +0 -0
  14. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/ontologies/shared.trig +0 -0
  15. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/__init__.py +0 -0
  16. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/cachesingleton.py +0 -0
  17. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/datamodel.py +0 -0
  18. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/dtypes/__init__.py +0 -0
  19. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/dtypes/bnode.py +0 -0
  20. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/dtypes/languagein.py +0 -0
  21. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/dtypes/namespaceiri.py +0 -0
  22. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/dtypes/rdfset.py +0 -0
  23. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/dtypes/xsdset.py +0 -0
  24. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/enums/__init__.py +0 -0
  25. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/enums/action.py +0 -0
  26. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/enums/adminpermissions.py +0 -0
  27. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/enums/attributeclass.py +0 -0
  28. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/enums/datapermissions.py +0 -0
  29. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/enums/haspropertyattr.py +0 -0
  30. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/enums/language.py +0 -0
  31. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/enums/oldaplistattr.py +0 -0
  32. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/enums/oldaplistnodeattr.py +0 -0
  33. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/enums/owlpropertytype.py +0 -0
  34. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/enums/permissionsetattr.py +0 -0
  35. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/enums/projectattr.py +0 -0
  36. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/enums/propertyclassattr.py +0 -0
  37. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/enums/resourceclassattr.py +0 -0
  38. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/enums/sparql_result_format.py +0 -0
  39. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/enums/userattr.py +0 -0
  40. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/enums/xsd_datatypes.py +0 -0
  41. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/globalconfig.py +0 -0
  42. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/hasproperty.py +0 -0
  43. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/helpers/Notify.py +0 -0
  44. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/helpers/__init__.py +0 -0
  45. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/helpers/attributechange.py +0 -0
  46. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/helpers/context.py +0 -0
  47. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/helpers/convert2datatype.py +0 -0
  48. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/helpers/irincname.py +0 -0
  49. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/helpers/json_encoder.py +0 -0
  50. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/helpers/langstring.py +0 -0
  51. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/helpers/numeric.py +0 -0
  52. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/helpers/observable_dict.py +0 -0
  53. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/helpers/observable_set.py +0 -0
  54. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/helpers/oldaperror.py +0 -0
  55. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/helpers/query_processor.py +0 -0
  56. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/helpers/semantic_version.py +0 -0
  57. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/helpers/serializeableset.py +0 -0
  58. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/helpers/serializer.py +0 -0
  59. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/helpers/singletonmeta.py +0 -0
  60. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/helpers/tools.py +0 -0
  61. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/iconnection.py +0 -0
  62. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/in_project.py +0 -0
  63. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/model.py +0 -0
  64. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/objectfactory.py +0 -0
  65. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/oldaplist.py +0 -0
  66. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/oldaplist_helpers.py +0 -0
  67. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/oldaplistnode.py +0 -0
  68. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/oldaplogging.py +0 -0
  69. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/permissionset.py +0 -0
  70. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/project.py +0 -0
  71. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/propertyclass.py +0 -0
  72. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/resourceclass.py +0 -0
  73. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/user.py +0 -0
  74. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/userdataclass.py +0 -0
  75. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/__init__.py +0 -0
  76. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/floatingpoint.py +0 -0
  77. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/iri.py +0 -0
  78. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd.py +0 -0
  79. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_anyuri.py +0 -0
  80. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_base64binary.py +0 -0
  81. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_boolean.py +0 -0
  82. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_byte.py +0 -0
  83. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_date.py +0 -0
  84. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_datetime.py +0 -0
  85. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_datetimestamp.py +0 -0
  86. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_decimal.py +0 -0
  87. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_double.py +0 -0
  88. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_duration.py +0 -0
  89. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_float.py +0 -0
  90. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_gday.py +0 -0
  91. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_gmonth.py +0 -0
  92. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_gmonthday.py +0 -0
  93. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_gyear.py +0 -0
  94. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_gyearmonth.py +0 -0
  95. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_hexbinary.py +0 -0
  96. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_id.py +0 -0
  97. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_idref.py +0 -0
  98. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_int.py +0 -0
  99. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_integer.py +0 -0
  100. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_language.py +0 -0
  101. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_long.py +0 -0
  102. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_name.py +0 -0
  103. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_ncname.py +0 -0
  104. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_negativeinteger.py +0 -0
  105. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_nmtoken.py +0 -0
  106. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_nonnegativeinteger.py +0 -0
  107. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_nonpositiveinteger.py +0 -0
  108. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_normalizedstring.py +0 -0
  109. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_positiveinteger.py +0 -0
  110. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_qname.py +0 -0
  111. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_short.py +0 -0
  112. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_string.py +0 -0
  113. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_time.py +0 -0
  114. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_token.py +0 -0
  115. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_unsignedbyte.py +0 -0
  116. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_unsignedint.py +0 -0
  117. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_unsignedlong.py +0 -0
  118. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/src/xsd/xsd_unsignedshort.py +0 -0
  119. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/test/__init__.py +0 -0
  120. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/test/test_cache.py +0 -0
  121. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/test/test_context.py +0 -0
  122. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/test/test_datamodel.py +0 -0
  123. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/test/test_dtypes.py +0 -0
  124. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/test/test_hasproperty.py +0 -0
  125. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/test/test_in_project.py +0 -0
  126. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/test/test_langstring.py +0 -0
  127. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/test/test_language_in.py +0 -0
  128. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/test/test_objectfactory.py +0 -0
  129. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/test/test_observable_dict.py +0 -0
  130. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/test/test_observable_set.py +0 -0
  131. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/test/test_oldaplist.py +0 -0
  132. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/test/test_oldaplist_helpers.py +0 -0
  133. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/test/test_oldaplistnode.py +0 -0
  134. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/test/test_permissionset.py +0 -0
  135. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/test/test_project.py +0 -0
  136. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/test/test_propertyclass.py +0 -0
  137. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/test/test_resourceclass.py +0 -0
  138. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/test/test_semantic_version.py +0 -0
  139. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/test/test_user.py +0 -0
  140. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/test/test_xsd_datatypes.py +0 -0
  141. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/testdata/Gender.yaml +0 -0
  142. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/testdata/collections_type.yaml +0 -0
  143. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/testdata/connection_test.trig +0 -0
  144. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/testdata/datamodel_test.trig +0 -0
  145. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/testdata/event_type.yaml +0 -0
  146. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/testdata/hlist_schema.yaml +0 -0
  147. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/testdata/institution_or_building_type.yaml +0 -0
  148. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/testdata/language.yaml +0 -0
  149. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/testdata/location_type.yaml +0 -0
  150. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/testdata/means_of_transportation.yaml +0 -0
  151. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/testdata/objectfactory_test.trig +0 -0
  152. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/testdata/playground_list.yaml +0 -0
  153. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/testdata/role.yaml +0 -0
  154. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/testdata/source_type-1.yaml +0 -0
  155. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/testdata/source_type.yaml +0 -0
  156. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/testdata/test_move_left_of_toL.yaml +0 -0
  157. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/testdata/testlist.yaml +0 -0
  158. {oldaplib-0.2.6 → oldaplib-0.2.8}/oldaplib/testit.http +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: oldaplib
3
- Version: 0.2.6
3
+ Version: 0.2.8
4
4
  Summary: Open Media Access Server Library (Linked Open Data middleware/RESTApi)
5
5
  License: GNU Affero General Public License version 3
6
6
  Author: Lukas Rosenthaler
@@ -14,6 +14,9 @@ from pathlib import Path
14
14
 
15
15
  from requests.auth import HTTPBasicAuth
16
16
 
17
+ from oldaplib.src.oldaplogging import get_logger
18
+ from oldaplib.src.version import __version__
19
+
17
20
  from oldaplib.src.cachesingleton import CacheSingleton, CacheSingletonRedis
18
21
  from oldaplib.src.enums.adminpermissions import AdminPermission
19
22
  from oldaplib.src.userdataclass import UserData
@@ -144,11 +147,15 @@ class Connection(IConnection):
144
147
  self._query_url = f'{self._server}/repositories/{self._repo}'
145
148
  self._update_url = f'{self._server}/repositories/{self._repo}/statements'
146
149
  self._store = SPARQLUpdateStore(self._query_url, self._update_url)
150
+
151
+ logger = get_logger()
152
+
147
153
  context = Context(name=context_name)
148
154
  if token is not None:
149
155
  try:
150
156
  payload = jwt.decode(jwt=token, key=Connection.__jwtkey, algorithms="HS256")
151
157
  except InvalidTokenError:
158
+ logger.error("Connection with invalid token")
152
159
  raise OldapError("Wrong credentials")
153
160
  self._userdata = json.loads(payload['userdata'], object_hook=serializer.decoder_hook)
154
161
  self._token = token
@@ -158,6 +165,7 @@ class Connection(IConnection):
158
165
  if not isinstance(userId, Xsd_NCName):
159
166
  userId = Xsd_NCName(userId)
160
167
  if userId is None:
168
+ logger.error("Connection with wrong credentials")
161
169
  raise OldapError("Wrong credentials")
162
170
  sparql = UserData.sparql_query(context=context, userId=userId)
163
171
  headers = {
@@ -168,22 +176,25 @@ class Connection(IConnection):
168
176
  'query': sparql,
169
177
  }
170
178
  #
171
- # if we have protected the triplestore by a user/password, add it tothe request
179
+ # if we have protected the triplestore by a user/password, add it to the request
172
180
  #
173
181
  auth = HTTPBasicAuth(self._dbuser, self._dbpassword) if self._dbuser and self._dbpassword else None
174
182
  res = requests.post(url=self._query_url, headers=headers, data=data, auth=auth)
175
183
  if res.status_code == 200:
176
184
  jsonobj = res.json()
177
185
  else:
186
+ logger.error(f"Could not connect to triplestore: {res.text}")
178
187
  raise OldapError(res.status_code, res.text)
179
188
  res = QueryProcessor(context=context, query_result=jsonobj)
180
189
 
181
190
  self._userdata = UserData.from_query(res)
182
191
  if not self._userdata.isActive:
192
+ logger.error("Connection with wrong credentials")
183
193
  raise OldapError("Wrong credentials") # On purpose, we are not providing too much information why the login failed
184
194
  if userId != "unknown":
185
195
  hashed = str(self._userdata.credentials).encode('utf-8')
186
196
  if not bcrypt.checkpw(credentials.encode('utf-8'), hashed):
197
+ logger.error("Connection with wrong credentials")
187
198
  raise OldapError("Wrong credentials") # On purpose, we are not providing too much information why the login failed
188
199
 
189
200
  expiration = datetime.now().astimezone() + timedelta(days=1)
@@ -225,19 +236,21 @@ class Connection(IConnection):
225
236
  if res.status_code == 200:
226
237
  jsonobj = res.json()
227
238
  else:
239
+ logger.error(f"Could not connect to triplestore: {res.text}")
228
240
  raise OldapError(res.status_code, res.text)
229
241
  res = QueryProcessor(context=context, query_result=jsonobj)
230
242
  for r in res:
231
243
  context[r['sname']] = r['ns']
244
+ logger.info(f'Connection established. User "{str(self._userdata.userId)}".')
245
+
246
+ @staticmethod
247
+ def version(self) -> str:
248
+ return __version__
232
249
 
233
250
  @property
234
251
  def jwtkey(self) -> str:
235
252
  """Getter for the JWT token"""
236
- return self.__jwtkey
237
-
238
- @jwtkey.setter
239
- def wtkey(self, value: str) -> None:
240
- self.__jwtkey = value
253
+ return Connection.__jwtkey
241
254
 
242
255
  @property
243
256
  def server(self) -> str:
@@ -267,7 +280,9 @@ class Connection(IConnection):
267
280
  permission to clear the graph.
268
281
  :raises OldapError: If the SPARQL update operation fails.
269
282
  """
283
+ logger = get_logger()
270
284
  if not self._userdata:
285
+ logger.error("Connection with no permission to clear graph.")
271
286
  raise OldapErrorNoPermission("No permission")
272
287
  actor = self._userdata
273
288
  sysperms = actor.inProject.get(Xsd_QName('oldap:SystemProject'))
@@ -289,7 +304,9 @@ class Connection(IConnection):
289
304
  data=data,
290
305
  auth=auth)
291
306
  if not req.ok:
307
+ logger.error(f'Clearing of graph "{graph_iri}" failed: {req.text}')
292
308
  raise OldapError(req.text)
309
+ logger.info(f'Graph "{graph_iri}" cleared.')
293
310
 
294
311
  def clear_repo(self) -> None:
295
312
  """
@@ -344,6 +361,7 @@ class Connection(IConnection):
344
361
  # if not is_root:
345
362
  # raise OldapErrorNoPermission("No permission")
346
363
 
364
+ logger = get_logger()
347
365
  with open(filename, encoding="utf-8") as f:
348
366
  content = f.read()
349
367
  ext = Path(filename).suffix
@@ -390,7 +408,9 @@ class Connection(IConnection):
390
408
  data=jsondata,
391
409
  auth=auth)
392
410
  if not req.ok:
411
+ logger.error(f'Upload of file "{filename}" failed: {req.text}')
393
412
  raise OldapError(req.text)
413
+ logger.info(f'File "{filename}" uploaded.')
394
414
 
395
415
  def query(self, query: str, format: SparqlResultFormat = SparqlResultFormat.JSON) -> Any:
396
416
  """
@@ -404,7 +424,9 @@ class Connection(IConnection):
404
424
  :rtype: Any
405
425
  :raises OldapError: Raised if not logged in or if there is an issue with the query execution.
406
426
  """
427
+ logger = get_logger()
407
428
  if not self._userdata:
429
+ logger.error("Not a valid user session.")
408
430
  raise OldapError("No login")
409
431
  headers = {
410
432
  "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
@@ -421,6 +443,7 @@ class Connection(IConnection):
421
443
  if res.status_code == 200:
422
444
  return Connection._switcher[format](res)
423
445
  else:
446
+ logger.error(f"SPARQL query failed: {res.text}")
424
447
  raise OldapError(res.text)
425
448
 
426
449
  def update_query(self, query: str) -> Dict[str,str]:
@@ -436,7 +459,9 @@ class Connection(IConnection):
436
459
  :rtype: Dict[str, str
437
460
  :raises OldapError: If user authentication is missing or the SPARQL UPDATE execution fails.
438
461
  """
462
+ logger = get_logger()
439
463
  if not self._userdata:
464
+ logger.error("Not a valid user session.")
440
465
  raise OldapError("No login")
441
466
  headers = {
442
467
  "Accept": "*/*"
@@ -445,6 +470,7 @@ class Connection(IConnection):
445
470
  auth = HTTPBasicAuth(self._dbuser, self._dbpassword) if self._dbuser and self._dbpassword else None
446
471
  res = requests.post(url, data={"update": query}, headers=headers, auth=auth)
447
472
  if not res.ok:
473
+ logger.error(f"SPARQL update query failed: {res.text}")
448
474
  raise OldapError(f'Update query failed. Reason: "{res.text}"')
449
475
 
450
476
  def transaction_start(self) -> None:
@@ -0,0 +1 @@
1
+ __version__ = "0.2.8"
@@ -1,3 +1,5 @@
1
+ import json
2
+ import os
1
3
  import unittest
2
4
  from datetime import datetime, timezone
3
5
  from pathlib import Path
@@ -11,6 +13,7 @@ from oldaplib.src.enums.sparql_result_format import SparqlResultFormat
11
13
  from oldaplib.src.helpers.context import Context
12
14
  from oldaplib.src.dtypes.bnode import BNode
13
15
  from oldaplib.src.dtypes.namespaceiri import NamespaceIRI
16
+ from oldaplib.src.helpers.serializer import serializer
14
17
  from oldaplib.src.xsd.iri import Iri
15
18
  from oldaplib.src.xsd.xsd_anyuri import Xsd_anyURI
16
19
  from oldaplib.src.xsd.xsd_qname import Xsd_QName
@@ -79,7 +82,7 @@ class TestBasicConnection(unittest.TestCase):
79
82
  self.assertEqual(con.server, 'http://localhost:7200')
80
83
  self.assertEqual(con.repo, 'oldap')
81
84
  self.assertEqual(con.context_name, 'DEFAULT')
82
- payload = jwt.decode(jwt=con.token, key=con.wtkey, algorithms="HS256")
85
+ payload = jwt.decode(jwt=con.token, key=con.jwtkey, algorithms="HS256")
83
86
  self.assertEqual(payload['iss'], 'http://oldap.org')
84
87
 
85
88
 
@@ -113,11 +116,15 @@ class TestBasicConnection(unittest.TestCase):
113
116
 
114
117
  #@unittest.skip('No longer used')
115
118
  def test_token(self):
116
- Connection.jwtkey = "This is a very special secret, yeah!"
119
+ os.environ["OLDAP_JWT_SECRET"] = "This is a very special secret, yeah!"
117
120
  con = Connection(userId="rosenth",
118
121
  credentials="RioGrande",
119
122
  context_name="DEFAULT")
120
123
  token = con.token
124
+ tokendata = jwt.decode(jwt=token, key=con.jwtkey, algorithms="HS256")
125
+ userdata = json.loads(tokendata['userdata'], object_hook=serializer.decoder_hook)
126
+ self.assertEqual(userdata.userId, "rosenth")
127
+
121
128
  con = Connection(token=token,
122
129
  context_name="DEFAULT")
123
130
  self.assertEqual(con.userid, Xsd_NCName("rosenth"))
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "oldaplib"
3
- version = "0.2.6"
3
+ version = "0.2.8"
4
4
  description = "Open Media Access Server Library (Linked Open Data middleware/RESTApi)"
5
5
  authors = ["Lukas Rosenthaler <lukas.rosenthaler@unibas.ch>"]
6
6
  license = "GNU Affero General Public License version 3"
@@ -1 +0,0 @@
1
- __version__ = "0.2.6"
File without changes
File without changes
File without changes
File without changes
File without changes