mirror of https://github.com/jumpserver/jumpserver
50 lines
1.3 KiB
Python
50 lines
1.3 KiB
Python
|
|
||
|
class SerializeApplicationToTreeNodeMixin:
|
||
|
|
||
|
@staticmethod
|
||
|
def _serialize_db(db):
|
||
|
return {
|
||
|
'id': db.id,
|
||
|
'name': db.name,
|
||
|
'title': db.name,
|
||
|
'pId': '',
|
||
|
'open': False,
|
||
|
'iconSkin': 'database',
|
||
|
'meta': {'type': 'database_app'}
|
||
|
}
|
||
|
|
||
|
@staticmethod
|
||
|
def _serialize_remote_app(remote_app):
|
||
|
return {
|
||
|
'id': remote_app.id,
|
||
|
'name': remote_app.name,
|
||
|
'title': remote_app.name,
|
||
|
'pId': '',
|
||
|
'open': False,
|
||
|
'isParent': False,
|
||
|
'iconSkin': 'chrome',
|
||
|
'meta': {'type': 'remote_app'}
|
||
|
}
|
||
|
|
||
|
@staticmethod
|
||
|
def _serialize_cloud(cloud):
|
||
|
return {
|
||
|
'id': cloud.id,
|
||
|
'name': cloud.name,
|
||
|
'title': cloud.name,
|
||
|
'pId': '',
|
||
|
'open': False,
|
||
|
'isParent': False,
|
||
|
'iconSkin': 'k8s',
|
||
|
'meta': {'type': 'k8s_app'}
|
||
|
}
|
||
|
|
||
|
def dispatch_serialize(self, application):
|
||
|
method_name = f'_serialize_{application.category}'
|
||
|
data = getattr(self, method_name)(application)
|
||
|
return data
|
||
|
|
||
|
def serialize_applications(self, applications):
|
||
|
data = [self.dispatch_serialize(application) for application in applications]
|
||
|
return data
|