utg-base 1.8.1__py3-none-any.whl → 1.9.0__py3-none-any.whl
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.
- utg_base/u_services/__init__.py +0 -0
- utg_base/u_services/apps.py +5 -0
- utg_base/u_services/constants.py +7 -0
- utg_base/u_services/migrations/0001_initial.py +29 -0
- utg_base/u_services/migrations/__init__.py +0 -0
- utg_base/u_services/models.py +43 -0
- utg_base/u_services/u_requests.py +46 -0
- {utg_base-1.8.1.dist-info → utg_base-1.9.0.dist-info}/METADATA +1 -1
- {utg_base-1.8.1.dist-info → utg_base-1.9.0.dist-info}/RECORD +10 -3
- {utg_base-1.8.1.dist-info → utg_base-1.9.0.dist-info}/WHEEL +0 -0
|
File without changes
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Generated by Django 5.2.8 on 2025-12-02 12:59
|
|
2
|
+
|
|
3
|
+
from django.db import migrations, models
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class Migration(migrations.Migration):
|
|
7
|
+
|
|
8
|
+
initial = True
|
|
9
|
+
|
|
10
|
+
dependencies = [
|
|
11
|
+
]
|
|
12
|
+
|
|
13
|
+
operations = [
|
|
14
|
+
migrations.CreateModel(
|
|
15
|
+
name='UService',
|
|
16
|
+
fields=[
|
|
17
|
+
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
18
|
+
('name', models.CharField(max_length=255)),
|
|
19
|
+
('title_translate_key', models.CharField(max_length=255)),
|
|
20
|
+
('logo', models.FileField(upload_to='media/logo')),
|
|
21
|
+
('type', models.CharField(choices=[('FILE_UPLOAD', 'File Upload'), ('API_INTEGRATION', 'Api Integration'), ('ADMIN', 'Admin')], max_length=20)),
|
|
22
|
+
('ip', models.GenericIPAddressField()),
|
|
23
|
+
('port', models.PositiveSmallIntegerField()),
|
|
24
|
+
],
|
|
25
|
+
options={
|
|
26
|
+
'ordering': ['name'],
|
|
27
|
+
},
|
|
28
|
+
),
|
|
29
|
+
]
|
|
File without changes
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
from urllib.parse import urljoin
|
|
2
|
+
|
|
3
|
+
from django.db import models
|
|
4
|
+
|
|
5
|
+
from utg_base.env import env
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class UServiceManager(models.Manager):
|
|
9
|
+
def get_queryset(self):
|
|
10
|
+
if env('DB_NAME') == 'uztransgaz':
|
|
11
|
+
return super().get_queryset()
|
|
12
|
+
return super().get_queryset().using('uztransgaz')
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class UService(models.Model):
|
|
16
|
+
class Type(models.TextChoices):
|
|
17
|
+
FILE_UPLOAD = 'FILE_UPLOAD'
|
|
18
|
+
API_INTEGRATION = 'API_INTEGRATION'
|
|
19
|
+
ADMIN = 'ADMIN'
|
|
20
|
+
|
|
21
|
+
objects = UServiceManager()
|
|
22
|
+
name = models.CharField(max_length=255)
|
|
23
|
+
title_translate_key = models.CharField(max_length=255)
|
|
24
|
+
logo = models.FileField(upload_to='media/logo')
|
|
25
|
+
type = models.CharField(max_length=20, choices=Type.choices)
|
|
26
|
+
ip = models.GenericIPAddressField()
|
|
27
|
+
port = models.PositiveSmallIntegerField()
|
|
28
|
+
|
|
29
|
+
def get_url(self, prefix: str):
|
|
30
|
+
return urljoin(f'http://{self.ip}:{self.port}', prefix)
|
|
31
|
+
|
|
32
|
+
def get_file_upload_status_url(self):
|
|
33
|
+
return self.get_url('/api/file-upload-status/')
|
|
34
|
+
|
|
35
|
+
def get_external_api_status_url(self):
|
|
36
|
+
return self.get_url('/api/admin/external-api/status/')
|
|
37
|
+
|
|
38
|
+
@staticmethod
|
|
39
|
+
def get_by_name(name: str):
|
|
40
|
+
return UService.objects.filter(name=name).first()
|
|
41
|
+
|
|
42
|
+
class Meta:
|
|
43
|
+
ordering = ['name']
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import requests
|
|
2
|
+
from rest_framework.request import Request
|
|
3
|
+
|
|
4
|
+
from .constants import UServices
|
|
5
|
+
from .models import UService
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def u_request(
|
|
9
|
+
method: str,
|
|
10
|
+
request: Request,
|
|
11
|
+
u_service: UServices,
|
|
12
|
+
prefix: str,
|
|
13
|
+
params: dict = None,
|
|
14
|
+
data: dict | list = None
|
|
15
|
+
):
|
|
16
|
+
headers = {
|
|
17
|
+
'Authorization': request.headers.get('Authorization'),
|
|
18
|
+
'Accept-Language': request.headers.get('Accept-Language'),
|
|
19
|
+
}
|
|
20
|
+
return requests.request(
|
|
21
|
+
method=method,
|
|
22
|
+
url=UService.get_by_name(u_service.value).get_url(prefix),
|
|
23
|
+
params=params,
|
|
24
|
+
json=data,
|
|
25
|
+
headers=headers,
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def get(request: Request, u_service: UServices, prefix: str, params: dict = None):
|
|
30
|
+
return u_request(method='get', request=request, u_service=u_service, prefix=prefix, params=params)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def post(request: Request, u_service: UServices, prefix: str, params: dict = None, data: dict | list = None):
|
|
34
|
+
return u_request(method='post', request=request, u_service=u_service, prefix=prefix, params=params, data=data)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def put(request: Request, u_service: UServices, prefix: str, params: dict = None, data: dict | list = None):
|
|
38
|
+
return u_request(method='put', request=request, u_service=u_service, prefix=prefix, params=params, data=data)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def patch(request: Request, u_service: UServices, prefix: str, params: dict = None, data: dict | list = None):
|
|
42
|
+
return u_request(method='patch', request=request, u_service=u_service, prefix=prefix, params=params, data=data)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def delete(request: Request, u_service: UServices, prefix: str, params: dict = None):
|
|
46
|
+
return u_request(method='delete', request=request, u_service=u_service, prefix=prefix, params=params)
|
|
@@ -48,6 +48,13 @@ utg_base/references_api/urls.py,sha256=WkLACQ8GfK5pJkvt8FuYdOxcqSZHj7pYRw51M9Wlu
|
|
|
48
48
|
utg_base/references_api/utils.py,sha256=VSP-Q1x1XwhcLsK0hFYl0tpepltwDpby-3mmMSPuIps,5821
|
|
49
49
|
utg_base/services/__init__.py,sha256=LqtwUiqEZPIbKRGJfve5D5m3ucV6Kw1Nbo5Jnj_hPhY,37
|
|
50
50
|
utg_base/services/base_api.py,sha256=bMTmjy8TRN4WTCgV_1RvkquoqijJQ1hP7BBtPgW_AH0,5677
|
|
51
|
+
utg_base/u_services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
52
|
+
utg_base/u_services/apps.py,sha256=JcLDfs62eoXeXB6cEWLKGCKa3t22Gr6Z3YiAkYLaHDY,159
|
|
53
|
+
utg_base/u_services/constants.py,sha256=T7lGhP9Xg2LwqALlTdA9etQJ68KmPm5713x26NUMW3Y,149
|
|
54
|
+
utg_base/u_services/migrations/0001_initial.py,sha256=UtUtk2r2uEuQiYIRZb0Of6sbsTr9zKJ7JhaI8Fql-oQ,988
|
|
55
|
+
utg_base/u_services/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
56
|
+
utg_base/u_services/models.py,sha256=w7-kSIwkDnRj_5BdfsE07eR9IdiTqfi41B3T7UyAyW4,1277
|
|
57
|
+
utg_base/u_services/u_requests.py,sha256=fGNWWQ3RJOOARgNHkScsqlGXwP6sI-HnS3Y-HnSoVS4,1709
|
|
51
58
|
utg_base/utils/__init__.py,sha256=5XmIPVpOl9Tjtzkx_bBeZD1uCpBE-R3WX6yiJii9Ip0,101
|
|
52
59
|
utg_base/utils/data.py,sha256=gbDEmEcmtaP1iCKEPG5I-q4orl8N3jvVc5eFNkkhG3c,2840
|
|
53
60
|
utg_base/utils/date.py,sha256=thcbK6RgTUYZfs4_vW5ucuu2e8H0rei6tv7SEC72iwM,3612
|
|
@@ -56,6 +63,6 @@ utg_base/utils/response_processors.py,sha256=WdZQL49wOJqCIY2MucAI6sez_llCqih0v_l
|
|
|
56
63
|
utg_base/utils/sql.py,sha256=rqIWcSjdjIMszdRnsnhV5TTYB8W17RPOujIQA9rKC_Y,762
|
|
57
64
|
utg_base/utils/thread.py,sha256=4RqRnwtyHymY-dNcuPrMSTamE2V7wCMVfzzyIb0P4TI,2191
|
|
58
65
|
utg_base/utils/translation.py,sha256=GxJHUt0iar_0E7RWBPbeLFQ4DhgXBjffHCmxfKyjFtk,463
|
|
59
|
-
utg_base-1.
|
|
60
|
-
utg_base-1.
|
|
61
|
-
utg_base-1.
|
|
66
|
+
utg_base-1.9.0.dist-info/METADATA,sha256=7YhFizPWat-_eK_016kzB625GE--P9rXFx5c1DYEttw,871
|
|
67
|
+
utg_base-1.9.0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
|
68
|
+
utg_base-1.9.0.dist-info/RECORD,,
|
|
File without changes
|