utg-base 1.8.0__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.
@@ -3,6 +3,7 @@ import os
3
3
  from django.core.management.commands.makemigrations import Command as BaseMakeMigrations
4
4
  from django.core.management.utils import run_formatters
5
5
  from django.db.migrations.writer import MigrationWriter
6
+ from django.db.migrations.operations import CreateModel
6
7
 
7
8
 
8
9
  class Command(BaseMakeMigrations):
@@ -22,6 +23,8 @@ class Command(BaseMakeMigrations):
22
23
  # BEGIN Customizing
23
24
  # fix 'created_at', 'updated_at' fields order
24
25
  for operation in migration.operations:
26
+ if not isinstance(operation, CreateModel):
27
+ continue
25
28
  _fields = []
26
29
  _end_fields = []
27
30
  for field_name, field in operation.fields:
File without changes
@@ -0,0 +1,5 @@
1
+ from django.apps import AppConfig
2
+
3
+ class UServicesConfig(AppConfig):
4
+ default_auto_field = "django.db.models.BigAutoField"
5
+ name = 'utg_base.u_services'
@@ -0,0 +1,7 @@
1
+ from enum import Enum
2
+
3
+
4
+ class UServices(Enum):
5
+ UZTRANSGAZ = 'uztransgaz'
6
+ TRANSLATION = 'translation'
7
+ USER_MANAGEMENT = 'user_management'
@@ -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)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: utg-base
3
- Version: 1.8.0
3
+ Version: 1.9.0
4
4
  Summary: UTG Base Package
5
5
  Author: Olimboy
6
6
  Author-email: shavkatov.olimboy@mail.ru
@@ -35,7 +35,7 @@ utg_base/migration/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuF
35
35
  utg_base/migration/apps.py,sha256=sATh5UNLRJeyFGiWTjU5L8qRSVM2NVG9GK196w6dd0A,162
36
36
  utg_base/migration/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
37
  utg_base/migration/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
- utg_base/migration/management/commands/makemigrations.py,sha256=cV-YOjJry3MFP5WR5YYq8Ji1mW_wM0umBNjIb8Ts1zE,4513
38
+ utg_base/migration/management/commands/makemigrations.py,sha256=vCC9ibMJHDw3KUEXXol6VMqeTXdeTmGOdKB4s3AT2dk,4665
39
39
  utg_base/models/__init__.py,sha256=1zXygGICiR3iUCKdkNal9d3i3kNp654gFgBf_VlR2gI,67
40
40
  utg_base/models/jwt_user.py,sha256=6TQ5wB_OZBtGhRL-2MonBGZm0n0Y86s4BRTxiRlUJOk,375
41
41
  utg_base/models/timestamp.py,sha256=AkCliNXnvs8Z17b1mcS7gOK7v6h3Jul6WCyGyVAkb-w,217
@@ -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.8.0.dist-info/METADATA,sha256=e7ukwTXgHmcSQ1ZIu9K6I3xJjSnCcMSuAkNtntBpPTY,871
60
- utg_base-1.8.0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
61
- utg_base-1.8.0.dist-info/RECORD,,
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,,