2019-12-19 07:28:17 +00:00
|
|
|
# coding: utf-8
|
|
|
|
#
|
2020-10-19 12:13:01 +00:00
|
|
|
from rest_framework import serializers
|
|
|
|
from django.utils.translation import ugettext_lazy as _
|
2019-12-19 07:28:17 +00:00
|
|
|
|
|
|
|
from orgs.mixins.serializers import BulkOrgResourceModelSerializer
|
|
|
|
from common.serializers import AdaptedBulkListSerializer
|
|
|
|
|
|
|
|
from .. import models
|
|
|
|
|
2020-10-19 12:13:01 +00:00
|
|
|
|
2020-10-23 11:19:12 +00:00
|
|
|
class DatabaseCategorySerializer(serializers.Serializer):
|
2020-10-28 06:11:27 +00:00
|
|
|
host = serializers.CharField(label=_('Host'))
|
|
|
|
port = serializers.IntegerField(label=_('Port'))
|
|
|
|
database = serializers.CharField(allow_blank=True, allow_null=True, label=_('Database'))
|
2020-10-19 12:13:01 +00:00
|
|
|
|
|
|
|
|
2020-10-23 11:19:12 +00:00
|
|
|
class DatabaseAttrsSerializer(DatabaseCategorySerializer):
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
2020-10-19 12:13:01 +00:00
|
|
|
class MySQLAttrsSerializer(DatabaseAttrsSerializer):
|
|
|
|
port = serializers.IntegerField(default=3306, label=_('Port'))
|
|
|
|
|
|
|
|
|
|
|
|
class PostgreAttrsSerializer(DatabaseAttrsSerializer):
|
2020-10-28 06:11:27 +00:00
|
|
|
port = serializers.IntegerField(default=5432, label=_('Port'))
|
2020-10-19 12:13:01 +00:00
|
|
|
|
|
|
|
|
|
|
|
class OracleAttrsSerializer(DatabaseAttrsSerializer):
|
2020-10-28 06:11:27 +00:00
|
|
|
port = serializers.IntegerField(default=1521, label=_('Port'))
|
2020-10-19 12:13:01 +00:00
|
|
|
|
|
|
|
|
|
|
|
class MariaDBAttrsSerializer(MySQLAttrsSerializer):
|
|
|
|
pass
|
2019-12-19 07:28:17 +00:00
|
|
|
|
|
|
|
|
|
|
|
class DatabaseAppSerializer(BulkOrgResourceModelSerializer):
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = models.DatabaseApp
|
|
|
|
list_serializer_class = AdaptedBulkListSerializer
|
|
|
|
fields = [
|
|
|
|
'id', 'name', 'type', 'get_type_display', 'host', 'port',
|
|
|
|
'database', 'comment', 'created_by', 'date_created', 'date_updated',
|
|
|
|
]
|
|
|
|
read_only_fields = [
|
|
|
|
'created_by', 'date_created', 'date_updated'
|
|
|
|
'get_type_display',
|
|
|
|
]
|