jaaql-middleware-python 4.23.8__tar.gz → 4.23.10__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 (75) hide show
  1. {jaaql-middleware-python-4.23.8/jaaql_middleware_python.egg-info → jaaql-middleware-python-4.23.10}/PKG-INFO +1 -1
  2. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/constants.py +1 -1
  3. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/exceptions/http_status_exception.py +2 -2
  4. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/exceptions/jaaql_interpretable_handled_errors.py +4 -4
  5. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/interpreter/interpret_jaaql.py +13 -8
  6. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/mvc/base_controller.py +2 -1
  7. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/mvc/exception_queries.py +1 -1
  8. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/mvc/generated_queries.py +1 -1
  9. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/scripts/04.install_jaaql_data_structures.generated.sql +624 -622
  10. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10/jaaql_middleware_python.egg-info}/PKG-INFO +1 -1
  11. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/LICENSE.txt +0 -0
  12. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/README.md +0 -0
  13. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/__init__.py +0 -0
  14. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/config/__init__.py +0 -0
  15. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/config/config-docker.ini +0 -0
  16. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/config/config-test.ini +0 -0
  17. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/config/config.ini +0 -0
  18. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/config_constants.py +0 -0
  19. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/db/__init__.py +0 -0
  20. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/db/db_interface.py +0 -0
  21. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/db/db_pg_interface.py +0 -0
  22. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/db/db_utils.py +0 -0
  23. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/db/db_utils_no_circ.py +0 -0
  24. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/documentation/__init__.py +0 -0
  25. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/documentation/documentation_internal.py +0 -0
  26. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/documentation/documentation_public.py +0 -0
  27. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/documentation/documentation_shared.py +0 -0
  28. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/email/__init__.py +0 -0
  29. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/email/email_manager.py +0 -0
  30. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/email/email_manager_service.py +0 -0
  31. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/email/patch_ems.py +0 -0
  32. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/exceptions/__init__.py +0 -0
  33. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/exceptions/custom_http_status.py +0 -0
  34. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/exceptions/not_yet_implement_exception.py +0 -0
  35. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/generated_constants.py +0 -0
  36. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/interpreter/__init__.py +0 -0
  37. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/jaaql.py +0 -0
  38. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/migrations/__init__.py +0 -0
  39. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/migrations/migration_history.sql +0 -0
  40. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/migrations/migrations.py +0 -0
  41. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/mvc/__init__.py +0 -0
  42. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/mvc/base_model.py +0 -0
  43. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/mvc/controller.py +0 -0
  44. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/mvc/controller_interface.py +0 -0
  45. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/mvc/handmade_queries.py +0 -0
  46. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/mvc/model.py +0 -0
  47. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/mvc/model_interface.py +0 -0
  48. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/mvc/response.py +0 -0
  49. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/openapi/__init__.py +0 -0
  50. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/openapi/swagger_documentation.py +0 -0
  51. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/patch.py +0 -0
  52. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/scripts/01.install_domains.generated.sql +0 -0
  53. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/scripts/02.install_super_user.exceptions.sql +0 -0
  54. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/scripts/03.install_super_user.handwritten.sql +0 -0
  55. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/scripts/05.install_jaaql.exceptions.sql +0 -0
  56. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/scripts/06.install_jaaql.handwritten.sql +0 -0
  57. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/scripts/swagger_template.html +0 -0
  58. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/services/__init__.py +0 -0
  59. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/services/cached_canned_query_service.py +0 -0
  60. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/services/migrations_manager_service.py +0 -0
  61. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/services/patch_mms.py +0 -0
  62. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/services/patch_shared_var_service.py +0 -0
  63. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/services/shared_var_service.py +0 -0
  64. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/utilities/__init__.py +0 -0
  65. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/utilities/crypt_utils.py +0 -0
  66. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/utilities/options.py +0 -0
  67. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/utilities/utils.py +0 -0
  68. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/utilities/utils_no_project_imports.py +0 -0
  69. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql/utilities/vault.py +0 -0
  70. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql_middleware_python.egg-info/SOURCES.txt +0 -0
  71. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql_middleware_python.egg-info/dependency_links.txt +0 -0
  72. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql_middleware_python.egg-info/requires.txt +0 -0
  73. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/jaaql_middleware_python.egg-info/top_level.txt +0 -0
  74. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/setup.cfg +0 -0
  75. {jaaql-middleware-python-4.23.8 → jaaql-middleware-python-4.23.10}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: jaaql-middleware-python
3
- Version: 4.23.8
3
+ Version: 4.23.10
4
4
  Summary: The jaaql package, allowing for rapid development and deployment of RESTful HTTP applications
5
5
  Home-page: https://github.com/JAAQL/JAAQL-middleware-python
6
6
  Author: Software Quality Measurement and Improvement bv
@@ -179,5 +179,5 @@ ROLE__postgres = "postgres"
179
179
 
180
180
  PROTOCOL__postgres = "postgresql://"
181
181
 
182
- VERSION = "4.23.8"
182
+ VERSION = "4.23.10"
183
183
 
@@ -52,5 +52,5 @@ class JaaqlInterpretableHandledError(Exception):
52
52
  return JaaqlInterpretableHandledError(
53
53
  obj.get("error_code"), RESPONSE_CODE_LOOKUP.get(obj.get("error_code"), 422), obj.get("table_name"),
54
54
  obj.get("index"), obj.get("message"), obj.get("column_name"),
55
- obj.get("_set"), obj.get("descriptor")
56
- )
55
+ obj.get("set"), obj.get("descriptor")
56
+ )
@@ -184,12 +184,12 @@ class InvalidSecurityEventLock(JaaqlInterpretableHandledError):
184
184
 
185
185
 
186
186
  class MissingParameterInQuery(JaaqlInterpretableHandledError):
187
- def __init__(self, _set, descriptor=None):
187
+ def __init__(self, message, _set, descriptor=None):
188
188
  super().__init__(
189
189
  error_code=1014,
190
190
  http_response_code=422,
191
191
  table_name=None,
192
- message="A query has been sent that expects a parameter but this parameter has not been provided",
192
+ message=message,
193
193
  column_name=None,
194
194
  _set=_set,
195
195
  index=None,
@@ -198,12 +198,12 @@ class MissingParameterInQuery(JaaqlInterpretableHandledError):
198
198
 
199
199
 
200
200
  class ExpectedParameterInQuery(JaaqlInterpretableHandledError):
201
- def __init__(self, descriptor=None):
201
+ def __init__(self, message, descriptor=None):
202
202
  super().__init__(
203
203
  error_code=1015,
204
204
  http_response_code=422,
205
205
  table_name=None,
206
- message="A parameter has been sent to a query that has not been used",
206
+ message=message,
207
207
  column_name=None,
208
208
  _set=None,
209
209
  index=None,
@@ -12,7 +12,7 @@ from psycopg.errors import OperationalError, Error
12
12
  from jaaql.constants import KEY__position, KEY__file, KEY__application, KEY__error, KEY__error_row_number, KEY__error_query, \
13
13
  KEY__error_set, KEY__error_index, SQLStateJaaql, KEY__restrictions, REGEX__dmbs_object_name
14
14
  from jaaql.exceptions.jaaql_interpretable_handled_errors import DatabaseOperationalError, HandledProcedureError, UnhandledQueryError, UnhandledProcedureError, \
15
- SingletonExpected
15
+ SingletonExpected, ExpectedParameterInQuery, MissingParameterInQuery
16
16
  from typing import Union
17
17
 
18
18
 
@@ -230,20 +230,24 @@ class InterpretJAAQL:
230
230
  else:
231
231
  cur_query = query_obj[KEY_query]
232
232
 
233
- last_query, found_parameter_dictionary = self.pre_prepare_statement(cur_query, parameters, require_presence=False)
233
+ last_query, found_parameter_dictionary = self.pre_prepare_statement(cur_query, parameters, require_presence=False,
234
+ query_name=query_key)
234
235
  enc_parameter_dictionary = {}
235
236
  encrypt_parameters = {key: val for key, val in parameters.items() if key not in found_parameter_dictionary}
236
237
  if len(encrypt_parameters) != 0:
237
238
  last_query, enc_parameter_dictionary = self.pre_prepare_statement(last_query, encrypt_parameters,
238
239
  match_regex=REGEX_enc_query_argument,
239
240
  encryption_key=encryption_key,
240
- require_presence=False)
241
+ require_presence=False,
242
+ query_name=query_key)
241
243
 
242
244
  found_params = {**found_parameter_dictionary, **enc_parameter_dictionary}
243
245
  check_unused -= set(found_params.keys())
244
246
 
245
247
  if len(check_unused):
246
- raise HttpStatusException(ERR_unused_parameter % list(check_unused)[0], HTTPStatus.BAD_REQUEST)
248
+ raise ExpectedParameterInQuery(ERR_unused_parameter % list(check_unused)[0], {
249
+ "parameters": list(check_unused)
250
+ })
247
251
 
248
252
  for query_key, query_obj in query.items():
249
253
  exc_query_key = query_key
@@ -309,7 +313,7 @@ class InterpretJAAQL:
309
313
  exc_row_number = cur_parameters.get(KEY__row_number)
310
314
  last_query, found_parameter_dictionary = self.pre_prepare_statement(
311
315
  cur_query, cur_parameters, for_prepare=do_prepare_only is not False and do_prepare_only is not None,
312
- skipped_singletons=skipped_singletons)
316
+ skipped_singletons=skipped_singletons, query_name=query_key)
313
317
 
314
318
  enc_parameter_dictionary = {}
315
319
 
@@ -319,7 +323,7 @@ class InterpretJAAQL:
319
323
  last_query, enc_parameter_dictionary = self.pre_prepare_statement(
320
324
  last_query, encrypt_parameters, match_regex=REGEX_enc_query_argument,
321
325
  encryption_key=encryption_key, for_prepare=do_prepare_only is not False and do_prepare_only is not None,
322
- skipped_singletons=skipped_singletons)
326
+ skipped_singletons=skipped_singletons, query_name=query_key)
323
327
 
324
328
  last_query = self.encrypt_literals(last_query, encryption_key)
325
329
  found_params = {**found_parameter_dictionary, **enc_parameter_dictionary}
@@ -664,7 +668,8 @@ class InterpretJAAQL:
664
668
  return new_query + query[last_end_match:]
665
669
 
666
670
  def pre_prepare_statement(self, query, parameters, match_regex: str = REGEX_query_argument, encryption_key: bytes = None,
667
- require_presence: bool = True, for_prepare: bool = False, skipped_singletons: list[str] = None):
671
+ require_presence: bool = True, for_prepare: bool = False, skipped_singletons: list[str] = None,
672
+ query_name: str = None):
668
673
  prepared = ""
669
674
  last_index = 0
670
675
  found_parameters = []
@@ -692,7 +697,7 @@ class InterpretJAAQL:
692
697
  if skipped_singletons is not None and len(skipped_singletons) != 0:
693
698
  missing_str += ". Is it possible the parameter exists in one of the following restricted singletons: " + ", ".join(
694
699
  missing_str) + "?"
695
- raise HttpStatusException(missing_str, HTTPStatus.BAD_REQUEST)
700
+ raise MissingParameterInQuery(missing_str, query_name, {"parameter": match_str})
696
701
  else:
697
702
  continue
698
703
  elif match_str not in parameters and match_str in MARKERS:
@@ -723,7 +723,8 @@ class BaseJAAQLController:
723
723
  "table_name": error.table_name,
724
724
  "index": error.index,
725
725
  "column_name": error.column_name,
726
- "descriptor": error.descriptor
726
+ "descriptor": error.descriptor,
727
+ "set": error.set
727
728
  })
728
729
  res.status = error.response_code
729
730
  return BaseJAAQLController._cors(res)
@@ -1,5 +1,5 @@
1
1
  """
2
- This script was generated from jaaql.exceptions.fxli at 2024-04-30, 13:33:05
2
+ This script was generated from jaaql.exceptions.fxli at 2024-05-31, 19:12:21
3
3
  """
4
4
 
5
5
  from jaaql.utilities.crypt_utils import get_repeatable_salt
@@ -1,5 +1,5 @@
1
1
  """
2
- This script was generated from jaaql.fxli at 2024-04-30, 13:33:05
2
+ This script was generated from jaaql.fxli at 2024-05-31, 19:12:21
3
3
  """
4
4
 
5
5
  from jaaql.db.db_interface import DBInterface