utg-base 1.8.0__tar.gz → 1.9.0__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 (68) hide show
  1. {utg_base-1.8.0 → utg_base-1.9.0}/PKG-INFO +1 -1
  2. {utg_base-1.8.0 → utg_base-1.9.0}/pyproject.toml +1 -1
  3. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/migration/management/commands/makemigrations.py +3 -0
  4. utg_base-1.9.0/src/utg_base/u_services/__init__.py +0 -0
  5. utg_base-1.9.0/src/utg_base/u_services/apps.py +5 -0
  6. utg_base-1.9.0/src/utg_base/u_services/constants.py +7 -0
  7. utg_base-1.9.0/src/utg_base/u_services/migrations/0001_initial.py +29 -0
  8. utg_base-1.9.0/src/utg_base/u_services/migrations/__init__.py +0 -0
  9. utg_base-1.9.0/src/utg_base/u_services/models.py +43 -0
  10. utg_base-1.9.0/src/utg_base/u_services/u_requests.py +46 -0
  11. {utg_base-1.8.0 → utg_base-1.9.0}/README.md +0 -0
  12. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/__init__.py +0 -0
  13. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/api/__init__.py +0 -0
  14. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/api/base.py +0 -0
  15. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/api/pagination.py +0 -0
  16. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/api/permissions.py +0 -0
  17. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/api/routers.py +0 -0
  18. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/api/serializers.py +0 -0
  19. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/api/spectacular.py +0 -0
  20. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/api/views.py +0 -0
  21. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/authentications/__init__.py +0 -0
  22. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/authentications/microservice_authentication.py +0 -0
  23. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/authentications/models.py +0 -0
  24. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/celery/__init__.py +0 -0
  25. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/celery/apps.py +0 -0
  26. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/celery/filters/__init__.py +0 -0
  27. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/celery/filters/task_result.py +0 -0
  28. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/celery/management/__init__.py +0 -0
  29. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/celery/management/commands/__init__.py +0 -0
  30. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/celery/management/commands/migrate_tasks.py +0 -0
  31. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/celery/serializers/__init__.py +0 -0
  32. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/celery/serializers/periodic_task.py +0 -0
  33. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/celery/serializers/task_result.py +0 -0
  34. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/celery/urls.py +0 -0
  35. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/celery/views/__init__.py +0 -0
  36. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/celery/views/periodic_task.py +0 -0
  37. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/celery/views/task_result.py +0 -0
  38. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/constants/__init__.py +0 -0
  39. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/constants/available_languages.py +0 -0
  40. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/env.py +0 -0
  41. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/logging.py +0 -0
  42. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/middleware/__init__.py +0 -0
  43. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/middleware/debug.py +0 -0
  44. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/middleware/locale.py +0 -0
  45. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/migration/__init__.py +0 -0
  46. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/migration/apps.py +0 -0
  47. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/migration/management/__init__.py +0 -0
  48. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/migration/management/commands/__init__.py +0 -0
  49. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/models/__init__.py +0 -0
  50. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/models/jwt_user.py +0 -0
  51. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/models/timestamp.py +0 -0
  52. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/references_api/__init__.py +0 -0
  53. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/references_api/admin.py +0 -0
  54. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/references_api/apps.py +0 -0
  55. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/references_api/migrations/__init__.py +0 -0
  56. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/references_api/models.py +0 -0
  57. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/references_api/urls.py +0 -0
  58. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/references_api/utils.py +0 -0
  59. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/services/__init__.py +0 -0
  60. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/services/base_api.py +0 -0
  61. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/utils/__init__.py +0 -0
  62. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/utils/data.py +0 -0
  63. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/utils/date.py +0 -0
  64. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/utils/dict_util.py +0 -0
  65. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/utils/response_processors.py +0 -0
  66. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/utils/sql.py +0 -0
  67. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/utils/thread.py +0 -0
  68. {utg_base-1.8.0 → utg_base-1.9.0}/src/utg_base/utils/translation.py +0 -0
@@ -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
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "utg-base"
3
- version = "1.8.0"
3
+ version = "1.9.0"
4
4
  description = "UTG Base Package"
5
5
  authors = ["Olimboy <shavkatov.olimboy@mail.ru>", "Rovshen <rovshenashirov1619@gmail.com>"]
6
6
  readme = "README.md"
@@ -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
+ ]
@@ -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)
File without changes
File without changes