diff --git a/packages/ui/certd-server/src/plugins/plugin-xinnetconnet/access.ts b/packages/ui/certd-server/src/plugins/plugin-xinnetconnet/access.ts index 286526d2d..ceed8326c 100644 --- a/packages/ui/certd-server/src/plugins/plugin-xinnetconnet/access.ts +++ b/packages/ui/certd-server/src/plugins/plugin-xinnetconnet/access.ts @@ -1,8 +1,8 @@ -import { IsAccess, AccessInput, BaseAccess } from '@certd/pipeline'; +import { AccessInput, BaseAccess, IsAccess, PageSearch } from '@certd/pipeline'; /** - * 这个注解将注册一个授权配置 - * 在certd的后台管理系统中,用户可以选择添加此类型的授权 + 管理页面地址:https://www.dns.com.cn/login/toLogin.do +是否有API接口,接口地址:https://api.bizcn.com/rrpservices */ @IsAccess({ name: 'xinnetconnect', @@ -38,6 +38,23 @@ export class XinnetConnectAccess extends BaseAccess { password = ''; + async getDomainList(req: PageSearch): Promise { + let bodyXml =` + ${req.pageSize} + ${req.pageNo} + ` + if(req.searchKey){ + bodyXml += `${req.searchKey}` + } + + const res = await this.doRequest({ + url: "/domainService", + bodyXml: bodyXml, + service: "getDomainList", + }) + return res + } + async addDnsRecord(req: {domain:string,hostRecord:string, value:string, type:string}): Promise { const { domain,hostRecord, value, type } = req; @@ -125,15 +142,19 @@ export class XinnetConnectAccess extends BaseAccess { // 提取返回结果 const soapBody = result['soap:Envelope']['soap:Body']; - const addDnsRecordResponse = soapBody["ns1:addDnsRecordResponse"]; - console.log(addDnsRecordResponse) + const keys = Object.keys(soapBody); + if (keys.length === 0) { + throw new Error('SOAP响应体为空'); + } + const addDnsRecordResponse = soapBody[keys[0]]; + this.ctx.logger.info(addDnsRecordResponse) const resultData = addDnsRecordResponse.response.result; const res = { code: resultData.$.code, msg: resultData.msg } - console.log('操作结果:', res); + this.ctx.logger.info('操作结果:', res); if (res.code != "200") { throw new Error(res.msg + " code:" + res.code); diff --git a/packages/ui/certd-server/src/plugins/plugin-xinnetconnet/dns-provider.ts b/packages/ui/certd-server/src/plugins/plugin-xinnetconnet/dns-provider.ts index 0556acd48..7af0cc9a4 100644 --- a/packages/ui/certd-server/src/plugins/plugin-xinnetconnet/dns-provider.ts +++ b/packages/ui/certd-server/src/plugins/plugin-xinnetconnet/dns-provider.ts @@ -1,4 +1,5 @@ -import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from "@certd/plugin-cert"; +import { PageRes, PageSearch } from "@certd/pipeline"; +import { AbstractDnsProvider, CreateRecordOptions, DomainRecord, IsDnsProvider, RemoveRecordOptions } from "@certd/plugin-cert"; import { XinnetConnectAccess } from "./access.js"; @@ -62,6 +63,21 @@ export class XinnetConnectDnsProvider extends AbstractDnsProvider> { + const res = await this.access.getDomainList(req) + let list = res.domainlist || [] + list = list.map(item => ({ + domain: item.domain, + id: item.domain, + })) + return { + pageNo: req.pageNo, + pageSize: req.pageSize, + total: res.total || 0, + list, + } + } } //实例化这个provider,将其自动注册到系统中