import BaseAction from '../BaseAction'; import { ActionName } from '../types'; import { FromSchema, JSONSchema } from 'json-schema-to-ts'; const SchemaData = { type: 'object', properties: { user_id: { type: 'string' }, group_id: { type: 'string' }, phoneNumber: { type: 'string' }, }, } as const satisfies JSONSchema; type Payload = FromSchema; export class SharePeer extends BaseAction { actionName = ActionName.SharePeer; payloadSchema = SchemaData; async _handle(payload: Payload) { const NTQQUserApi = this.core.apis.UserApi; const NTQQGroupApi = this.core.apis.GroupApi; if (payload.group_id) { return await NTQQGroupApi.getGroupRecommendContactArkJson(payload.group_id); } else if (payload.user_id) { return await NTQQUserApi.getBuddyRecommendContactArkJson(payload.user_id, payload.phoneNumber || ''); } } } const SchemaDataGroupEx = { type: 'object', properties: { group_id: { type: 'string' }, }, required: ['group_id'], } as const satisfies JSONSchema; type PayloadGroupEx = FromSchema; export class ShareGroupEx extends BaseAction { actionName = ActionName.ShareGroupEx; payloadSchema = SchemaDataGroupEx; async _handle(payload: PayloadGroupEx) { const NTQQGroupApi = this.core.apis.GroupApi; return await NTQQGroupApi.getArkJsonGroupShare(payload.group_id); } }