85 lines
2.0 KiB
Python
85 lines
2.0 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
deploy_webhook_model.py
|
|
"""
|
|
from __future__ import print_function, unicode_literals, absolute_import, division
|
|
|
|
import json
|
|
from datetime import datetime
|
|
|
|
from peewee import CharField, IntegerField, DateTimeField, AutoField
|
|
from playhouse.shortcuts import model_to_dict
|
|
|
|
from domain_admin.enums.deploy_status_enum import DeployStatusEnum
|
|
from domain_admin.enums.object_enum import ObjectEnum
|
|
from domain_admin.model.base_model import BaseModel
|
|
from domain_admin.utils import datetime_util
|
|
|
|
|
|
class DeployWebhookModel(BaseModel):
|
|
"""
|
|
api方式部署证书配置表
|
|
@since v1.6.52
|
|
"""
|
|
id = AutoField(primary_key=True)
|
|
|
|
user_id = IntegerField(default=0)
|
|
|
|
# 证书ID
|
|
object_id = IntegerField(default=0)
|
|
|
|
# 证书类型
|
|
object_type = IntegerField(default=ObjectEnum.Certificate)
|
|
|
|
# 部署url
|
|
url = CharField(default=None, null=True)
|
|
|
|
# 头部
|
|
header_raw = CharField(default=None, null=True)
|
|
|
|
# 部署状态
|
|
status = IntegerField(default=DeployStatusEnum.PENDING, null=False)
|
|
|
|
# 数据版本号
|
|
version = IntegerField(default=0, null=False)
|
|
|
|
# 创建时间
|
|
create_time = DateTimeField(default=datetime.now)
|
|
|
|
# 更新时间
|
|
update_time = DateTimeField(default=datetime.now)
|
|
|
|
class Meta:
|
|
table_name = 'tb_deploy_webhook'
|
|
|
|
@property
|
|
def deploy_webhook_id(self):
|
|
return self.id
|
|
|
|
@property
|
|
def create_time_label(self):
|
|
return datetime_util.time_for_human(self.create_time)
|
|
|
|
@property
|
|
def update_time_label(self):
|
|
return datetime_util.time_for_human(self.update_time)
|
|
|
|
@property
|
|
def headers(self):
|
|
if self.header_raw:
|
|
return json.loads(self.header_raw)
|
|
else:
|
|
return {}
|
|
|
|
def to_dict(self):
|
|
data = model_to_dict(
|
|
model=self,
|
|
extra_attrs=[
|
|
'deploy_webhook_id',
|
|
'create_time_label',
|
|
'update_time_label',
|
|
'headers',
|
|
]
|
|
)
|
|
return data
|