Files
accounts-manager/example/example.js
cloud370 3162cbfad0 feat: add export functionality for web API with demo script
- Add export API endpoint POST /web/v1/accounts/export
- Support two export modes: text (data strings) and object (full account objects)
- Automatically set account status to 'exported' during export
- Add comprehensive demo script that uploads, exports and verifies functionality
- Update API documentation with export endpoint details
- Add TypeScript types for export functionality

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-23 11:32:23 +08:00

119 lines
4.1 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import AccountsManagerSDK, { AccountStatus, BusinessCode } from './accounts-manager-sdk.js';
/**
* 账户管理系统 SDK 使用示例
*
* 本文件展示了如何使用 AccountsManagerSDK 的主要功能:
* 1. 初始化 SDK
* 2. 获取账号
* 3. 更新账户状态
* 4. 上传账户
*/
// 示例配置
const config = {
baseUrl: 'http://localhost:3006', // 替换为实际的API地址
ownerId: 'example-owner', // 默认所有者ID
platform: 'example-platform' // 默认平台名称
};
// 创建SDK实例
const sdk = new AccountsManagerSDK(config)
/**
* 示例:上传账号并使用上传的账号进行测试
*/
async function exampleUploadAndTest() {
console.log('\n=== 示例:上传账号并测试 ===');
try {
// 1. 先上传一些测试账号
console.log('步骤1上传测试账号...');
const testAccounts = [
'testuser1----password123',
'testuser2----password456',
'testuser3----password789',
'admin1----admin123',
'moderator1----mod123'
];
const uploadResult = await sdk.uploadAccounts(testAccounts);
if (uploadResult.isSuccess()) {
console.log('上传账号成功:');
console.log(` 处理数量: ${uploadResult.data.processedCount}`);
console.log(` 创建数量: ${uploadResult.data.createdCount}`);
console.log(` 更新数量: ${uploadResult.data.updatedCount}`);
} else {
console.error('上传账号失败:', uploadResult.message);
return; // 如果上传失败,直接返回
}
// 2. 获取刚上传的账号进行测试
console.log('\n步骤2获取刚上传的账号进行测试...');
const getAccountsResult = await sdk.getAccounts(3); // 获取3个账号
if (getAccountsResult.isSuccess()) {
console.log('获取账号成功:');
const retrievedAccounts = getAccountsResult.data;
retrievedAccounts.forEach((account, index) => {
console.log(`账号 ${index + 1}:`);
console.log(` ID: ${account.id}`);
console.log(` 自定义ID: ${account.customId}`);
console.log(` 数据: ${account.data}`);
});
// 3. 更新第一个获取的账号状态为"已使用"
let updatedAccountId = null;
if (retrievedAccounts.length > 0) {
console.log('\n步骤3更新第一个账号状态为"已使用"...');
const firstAccountId = retrievedAccounts[0].id;
updatedAccountId = firstAccountId; // 保存更新的账号ID用于后续验证
const updateResult = await sdk.updateAccountStatus(firstAccountId, AccountStatus.USED, undefined, '测试使用');
if (updateResult.isSuccess()) {
console.log('更新账户状态成功:');
console.log(` 更新的账户ID: ${updateResult.data.updatedId}`);
} else {
console.error('更新账户状态失败:', updateResult.message);
}
}
// 4. 验证状态更新
if (updatedAccountId) {
console.log('\n步骤4验证状态更新...');
console.log(`注意我们无法直接通过ID获取特定账号因为API只支持获取可用状态的账号。`);
console.log(`账号ID ${updatedAccountId} 的状态已更新为"已使用",因此它不会出现在可用账号列表中。`);
console.log('✅ 状态更新验证完成!(账号已从可用列表中移除)');
} else {
console.log('\n步骤4没有账号被更新跳过验证。');
}
} else {
console.error('获取账号失败:', getAccountsResult.message);
}
} catch (error) {
console.error('上传并测试账号时发生错误:', error.message);
}
}
/**
* 运行所有示例
*/
async function runAllExamples() {
console.log('开始运行账户管理系统SDK示例...');
// 注意这些示例需要实际的API服务器才能正常工作
// 如果没有运行服务器,这些调用将会失败
// 运行上传并测试的示例
await exampleUploadAndTest();
console.log('\n所有示例运行完成');
}
runAllExamples().catch(console.error);