eclinical-requester 1.0.11__tar.gz → 1.0.12__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 (73) hide show
  1. {eclinical_requester-1.0.11/src/eclinical_requester.egg-info → eclinical_requester-1.0.12}/PKG-INFO +1 -1
  2. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/setup.py +2 -6
  3. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/__init__.py +1 -1
  4. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/core/admin/api/subject_auth_api.py +3 -0
  5. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/core/admin/dto/jwt_authentication_request.py +1 -0
  6. eclinical_requester-1.0.12/src/api_requester/core/admin/dto/subject_jwt_authentication_request.py +19 -0
  7. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/core/admin/service/subject_auth_service.py +5 -1
  8. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/core/call_api.py +3 -2
  9. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/dto/user.py +4 -2
  10. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/http/authorize_ediary.py +3 -2
  11. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12/src/eclinical_requester.egg-info}/PKG-INFO +1 -1
  12. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/eclinical_requester.egg-info/SOURCES.txt +1 -0
  13. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/tests/test_api_requester.py +8 -0
  14. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/LICENSE +0 -0
  15. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/MANIFEST.in +0 -0
  16. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/README.md +0 -0
  17. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/pyproject.toml +0 -0
  18. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/setup.cfg +0 -0
  19. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/core/__init__.py +0 -0
  20. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/core/admin/__init__.py +0 -0
  21. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/core/admin/api/__init__.py +0 -0
  22. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/core/admin/api/auth_api.py +0 -0
  23. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/core/admin/api/ecoa_auth_api.py +0 -0
  24. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/core/admin/api/user_on_board_application_api.py +0 -0
  25. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/core/admin/dto/__init__.py +0 -0
  26. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/core/admin/dto/cross_user_user_on_board_dto.py +0 -0
  27. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/core/admin/dto/ecoa_onboard_request_dto.py +0 -0
  28. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/core/admin/dto/reset_password_email_request_dto.py +0 -0
  29. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/core/admin/dto/sso_token_retrieve_dto.py +0 -0
  30. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/core/admin/dto/user_on_board_dto.py +0 -0
  31. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/core/admin/service/__init__.py +0 -0
  32. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/core/admin/service/auth_service.py +0 -0
  33. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/core/admin/service/ecoa_auth_service.py +0 -0
  34. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/core/admin/service/impl/__init__.py +0 -0
  35. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/core/admin/service/impl/system_env_service_impl.py +0 -0
  36. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/core/admin/service/impl/user_on_board_application_service_impl.py +0 -0
  37. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/core/admin/service/user_on_board_application_service.py +0 -0
  38. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/core/common/__init__.py +0 -0
  39. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/core/common/api/__init__.py +0 -0
  40. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/core/common/api/ecoa_auth_api.py +0 -0
  41. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/core/common/api/subject_auth_api.py +0 -0
  42. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/core/common/api/system_env_api.py +0 -0
  43. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/core/common/dto/portal_login_t_ime.py +0 -0
  44. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/core/common/service/__init__.py +0 -0
  45. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/core/common/service/ecoa_auth_service.py +0 -0
  46. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/core/common/service/subject_auth_service.py +0 -0
  47. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/core/common/service/system_env_service.py +0 -0
  48. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/docs/application.yaml +0 -0
  49. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/dto/__init__.py +0 -0
  50. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/dto/base_dto.py +0 -0
  51. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/dto/biz_base.py +0 -0
  52. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/http/__init__.py +0 -0
  53. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/http/app_url.py +0 -0
  54. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/http/authorize.py +0 -0
  55. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/http/authorize_ecoa.py +0 -0
  56. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/http/eclinical_requests.py +0 -0
  57. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/http/exceptions.py +0 -0
  58. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/http/gateway.py +0 -0
  59. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/http/sample_headers.py +0 -0
  60. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/http/token_manager.py +0 -0
  61. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/utils/__init__.py +0 -0
  62. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/utils/constant.py +0 -0
  63. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/utils/json_utils.py +0 -0
  64. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/utils/lib.py +0 -0
  65. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/utils/logger.py +0 -0
  66. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/utils/path.py +0 -0
  67. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/utils/placeholder_replacer.py +0 -0
  68. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/utils/read_file.py +0 -0
  69. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/utils/rsa.py +0 -0
  70. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/api_requester/utils/time_utils.py +0 -0
  71. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/eclinical_requester.egg-info/dependency_links.txt +0 -0
  72. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/eclinical_requester.egg-info/requires.txt +0 -0
  73. {eclinical_requester-1.0.11 → eclinical_requester-1.0.12}/src/eclinical_requester.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: eclinical_requester
3
- Version: 1.0.11
3
+ Version: 1.0.12
4
4
  Summary: edetek api requester
5
5
  Home-page: http://example.com
6
6
  Author: xiaodong.li
@@ -7,16 +7,12 @@
7
7
  @File: setup.py
8
8
  """
9
9
 
10
- import re
11
-
12
10
  import setuptools
13
- from src.api_requester import __version__
14
11
  from setuptools import find_packages
15
12
 
13
+ from src.api_requester import __version__
14
+
16
15
  version = __version__
17
- # with open('src/api_requester/__init__.py', 'r') as fd:
18
- # version = re.search(r'^__version__\s*=\s*[\'"]([^\'"]*)[\'"]',
19
- # fd.read(), re.MULTILINE).group(1)
20
16
 
21
17
  with open("README.md", "r") as fh:
22
18
  long_description = fh.read()
@@ -6,4 +6,4 @@
6
6
  @Description: Description
7
7
  @File: __init__.py.py
8
8
  """
9
- __version__ = "1.0.11"
9
+ __version__ = "1.0.12"
@@ -22,3 +22,6 @@ class AdminSubjectAuthApi:
22
22
 
23
23
  @get('/auth/subject/me')
24
24
  def auth_subject_me_api(self, *args, **kwargs): ...
25
+
26
+ @get('/auth/subject/verify/organization-code')
27
+ def verify_organization_code_api(self, *args, **kwargs): ...
@@ -18,3 +18,4 @@ class JwtAuthenticationRequest(BaseDto):
18
18
  """
19
19
  userName: str
20
20
  password: str
21
+ mfaToken: str = None
@@ -0,0 +1,19 @@
1
+ # !/usr/bin/python3
2
+ # -*- coding:utf-8 -*-
3
+ """
4
+ @Author: xiaodong.li
5
+ @Time: 2025/07/04 09:01
6
+ @Description: Description
7
+ @File: subject_jwt_authentication_request.py
8
+ """
9
+ from dataclasses import dataclass
10
+
11
+ from api_requester.core.admin.dto.jwt_authentication_request import JwtAuthenticationRequest
12
+
13
+
14
+ @dataclass
15
+ class SubjectJwtAuthenticationRequest(JwtAuthenticationRequest):
16
+ """
17
+ The SubjectJwtAuthenticationRequest was generated by Generator from the SubjectJwtAuthenticationRequest.java file.
18
+ """
19
+ organizationCode: str = None
@@ -8,6 +8,7 @@
8
8
  """
9
9
  from api_requester.core.admin.api.subject_auth_api import AdminSubjectAuthApi
10
10
  from api_requester.core.admin.dto.jwt_authentication_request import JwtAuthenticationRequest
11
+ from api_requester.core.admin.dto.subject_jwt_authentication_request import SubjectJwtAuthenticationRequest
11
12
 
12
13
 
13
14
  class AdminSubjectAuthService(AdminSubjectAuthApi):
@@ -18,7 +19,7 @@ class AdminSubjectAuthService(AdminSubjectAuthApi):
18
19
  def __init__(self):
19
20
  AdminSubjectAuthApi.__init__(self)
20
21
 
21
- def auth_subject_login(self, authentication_request: JwtAuthenticationRequest = None):
22
+ def auth_subject_login(self, authentication_request: SubjectJwtAuthenticationRequest = None):
22
23
  return self.auth_subject_login_api(json=authentication_request)
23
24
 
24
25
  def auth_subject_logout(self):
@@ -26,3 +27,6 @@ class AdminSubjectAuthService(AdminSubjectAuthApi):
26
27
 
27
28
  def auth_subject_me(self):
28
29
  return self.auth_subject_me_api()
30
+
31
+ def verify_organization_code(self, organization_code: str = None):
32
+ return self.verify_organization_code_api(params=dict(organizationCode=organization_code))
@@ -22,7 +22,7 @@ from api_requester.utils.placeholder_replacer import PlaceholderReplacer
22
22
  class ApiRequester(BizBase):
23
23
 
24
24
  def __init__(self, username=None, password=None, sponsor=None, study=None, test_env=None, app_env=None, app=None,
25
- company=None, role=None, external=False, ttype=None):
25
+ company=None, role=None, external=False, ttype=None, org_code=None):
26
26
  u = EClinicalUser(
27
27
  username=username,
28
28
  password=password,
@@ -33,7 +33,8 @@ class ApiRequester(BizBase):
33
33
  app=app,
34
34
  company=company,
35
35
  role=role,
36
- external=external
36
+ external=external,
37
+ org_code=org_code,
37
38
  )
38
39
  super().__init__(u)
39
40
  self.headers = dict()
@@ -11,7 +11,7 @@
11
11
  class EClinicalUser:
12
12
 
13
13
  def __init__(self, username=None, password=None, sponsor=None, study=None, test_env=None, app_env=None, app=None,
14
- company=None, role=None, external=False):
14
+ company=None, role=None, external=False, org_code=None):
15
15
  # username 用户名
16
16
  # password 密码
17
17
  # app 访问的系统
@@ -29,11 +29,13 @@ class EClinicalUser:
29
29
  self.role = role
30
30
  self.external = external
31
31
  self.company_level_login = False
32
+ self.org_code = org_code
32
33
 
33
34
  def __repr__(self):
34
35
  attributes = self.__dict__
35
36
  info = [
36
- str(attributes[item]) for item in ["test_env", "username", "role", "company", "sponsor", "study", "app_env"]
37
+ str(attributes[item]) for item in
38
+ ["test_env", "username", "role", "company", "sponsor", "study", "app_env", "org_code"]
37
39
  if attributes.get(item) is not None
38
40
  ]
39
41
  return "/".join(info)
@@ -10,7 +10,7 @@ import time
10
10
 
11
11
  from loguru import logger
12
12
 
13
- from api_requester.core.admin.dto.jwt_authentication_request import JwtAuthenticationRequest
13
+ from api_requester.core.admin.dto.subject_jwt_authentication_request import SubjectJwtAuthenticationRequest
14
14
  from api_requester.core.admin.dto.user_on_board_dto import UserOnBoardDto
15
15
  from api_requester.core.admin.service.subject_auth_service import AdminSubjectAuthService
16
16
  from api_requester.core.common.service.subject_auth_service import CommonSubjectAuthService
@@ -45,7 +45,8 @@ class AuthorizeEdiary(BizBase, AdminSubjectAuthService, CommonSubjectAuthService
45
45
  def _auth(self):
46
46
  self.time_mills = time.time()
47
47
  encrypt_pwd = encrypt_password(self.user.password)
48
- jwt_authentication_request_dto = JwtAuthenticationRequest(self.user.username, encrypt_pwd)
48
+ jwt_authentication_request_dto = SubjectJwtAuthenticationRequest(
49
+ self.user.username, encrypt_pwd, self.user.org_code)
49
50
  response = self.auth_subject_login(jwt_authentication_request_dto)
50
51
  if response is None:
51
52
  raise Exception(f"LoginParams failed: {response}")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: eclinical_requester
3
- Version: 1.0.11
3
+ Version: 1.0.12
4
4
  Summary: edetek api requester
5
5
  Home-page: http://example.com
6
6
  Author: xiaodong.li
@@ -18,6 +18,7 @@ src/api_requester/core/admin/dto/ecoa_onboard_request_dto.py
18
18
  src/api_requester/core/admin/dto/jwt_authentication_request.py
19
19
  src/api_requester/core/admin/dto/reset_password_email_request_dto.py
20
20
  src/api_requester/core/admin/dto/sso_token_retrieve_dto.py
21
+ src/api_requester/core/admin/dto/subject_jwt_authentication_request.py
21
22
  src/api_requester/core/admin/dto/user_on_board_dto.py
22
23
  src/api_requester/core/admin/service/__init__.py
23
24
  src/api_requester/core/admin/service/auth_service.py
@@ -33,3 +33,11 @@ class TestApiRequester(unittest.TestCase):
33
33
  c.login()
34
34
  response = c.request("get", "/study/information")
35
35
  assert response.json().get("payload").get("name") == "CRN04894-13"
36
+
37
+ @staticmethod
38
+ def test_ediary_login_with_org_code():
39
+ c = ApiRequester("76548847", "340196", app=AppEnum.EDC.code, test_env="dev01", ttype=EdcAppType.EDIARY.name,
40
+ org_code="62B64A")
41
+ c.login()
42
+ response = c.request("get", "/study/information")
43
+ assert response.json().get("payload").get("name") == "Study-113-963"