UNPKG

@anjir/app-novinhub

Version:

نوین هاب - پلتفرم کامل مدیریت شبکه‌های اجتماعی، دایرکت هوشمند، و خودکارسازی پیام‌رسانی

176 lines 8.88 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.novinhubCreateAccountAction = void 0; const apps_framework_1 = require("@anjir/apps-framework"); const apps_common_1 = require("@anjir/apps-common"); const index_1 = require("../../index"); const common_1 = require("../common"); exports.novinhubCreateAccountAction = (0, apps_framework_1.createAction)({ auth: index_1.novinhubAuth, name: 'create_account', displayName: 'ایجاد اکانت', description: 'افزودن اکانت شبکه اجتماعی. با انتخاب نوع شبکه، فقط فیلدهای مرتبط نمایش داده می‌شوند.', props: { type: apps_framework_1.Property.StaticDropdown({ displayName: 'نوع شبکه اجتماعی', description: 'شبکه اجتماعی که می‌خواهید اکانت آن را اضافه کنید', required: true, options: { disabled: false, options: [ { label: (0, common_1.getSocialNetworkDisplayName)(common_1.SOCIAL_NETWORKS.TELEGRAM), value: common_1.SOCIAL_NETWORKS.TELEGRAM }, { label: (0, common_1.getSocialNetworkDisplayName)(common_1.SOCIAL_NETWORKS.BALE), value: common_1.SOCIAL_NETWORKS.BALE }, { label: (0, common_1.getSocialNetworkDisplayName)(common_1.SOCIAL_NETWORKS.EITAA), value: common_1.SOCIAL_NETWORKS.EITAA }, { label: (0, common_1.getSocialNetworkDisplayName)(common_1.SOCIAL_NETWORKS.GAP), value: common_1.SOCIAL_NETWORKS.GAP }, { label: (0, common_1.getSocialNetworkDisplayName)(common_1.SOCIAL_NETWORKS.SOROUSH), value: common_1.SOCIAL_NETWORKS.SOROUSH }, ], }, }), // Common fields username: apps_framework_1.Property.ShortText({ displayName: 'نام کاربری کانال', description: 'نام کاربری کانال (بدون @)', required: true, }), // Dynamic properties based on selected social network network_settings: apps_framework_1.Property.DynamicProperties({ displayName: 'تنظیمات شبکه', description: 'فقط فیلدهای لازم برای نوع انتخاب‌شده نمایش داده می‌شوند', required: false, refreshers: ['type'], props: async ({ type }) => { const properties = {}; const selectedType = type; if (selectedType === common_1.SOCIAL_NETWORKS.TELEGRAM) { properties.botusername = apps_framework_1.Property.ShortText({ displayName: 'نام کاربری ربات تلگرام', description: 'نام کاربری ربات سفارشی تلگرام (اختیاری)', required: false, }); properties.botapikey = apps_framework_1.Property.ShortText({ displayName: 'کلید API ربات تلگرام', description: 'کلید API ربات سفارشی تلگرام (اختیاری)', required: false, }); } else if (selectedType === common_1.SOCIAL_NETWORKS.BALE) { properties.botusername = apps_framework_1.Property.ShortText({ displayName: 'نام کاربری ربات بله', description: 'نام کاربری ربات سفارشی بله (اختیاری)', required: false, }); properties.botapikey = apps_framework_1.Property.ShortText({ displayName: 'کلید API ربات بله', description: 'کلید API ربات سفارشی بله (اختیاری)', required: false, }); } else if (selectedType === common_1.SOCIAL_NETWORKS.EITAA) { properties.token = apps_framework_1.Property.ShortText({ displayName: 'توکن کانال ایتا', description: 'توکن کانال شبکه ایتا', required: false, }); } else if (selectedType === common_1.SOCIAL_NETWORKS.GAP) { properties.botusername = apps_framework_1.Property.ShortText({ displayName: 'نام کاربری ربات گپ', description: 'نام کاربری ربات سفارشی گپ (اختیاری)', required: false, }); properties.botapikey = apps_framework_1.Property.ShortText({ displayName: 'کلید API ربات گپ', description: 'کلید API ربات سفارشی گپ (اختیاری)', required: false, }); } else if (selectedType === common_1.SOCIAL_NETWORKS.SOROUSH) { properties.botapikey = apps_framework_1.Property.ShortText({ displayName: 'کلید API ربات سروش', description: 'کلید API ربات سفارشی سروش (اختیاری)', required: false, }); } return properties; }, }), }, async run(ctx) { const { type, username, network_settings } = ctx.propsValue; const headers = { 'Content-Type': 'application/json', 'Authorization': `Bearer ${ctx.auth.access_token}`, }; // Build request body based on social network type const body = { type, username, }; // Add network-specific fields from dynamic properties if (network_settings && typeof network_settings === 'object') { switch (type) { case common_1.SOCIAL_NETWORKS.TELEGRAM: if (network_settings.botusername) { body.botusername = network_settings.botusername; } if (network_settings.botapikey) { body.botapikey = network_settings.botapikey; } break; case common_1.SOCIAL_NETWORKS.BALE: if (network_settings.botusername) { body.botusername = network_settings.botusername; } if (network_settings.botapikey) { body.botapikey = network_settings.botapikey; } break; case common_1.SOCIAL_NETWORKS.EITAA: if (network_settings.token) { body.token = network_settings.token; } break; case common_1.SOCIAL_NETWORKS.GAP: if (network_settings.botusername) { body.botusername = network_settings.botusername; } if (network_settings.botapikey) { body.botapikey = network_settings.botapikey; } break; case common_1.SOCIAL_NETWORKS.SOROUSH: if (network_settings.botapikey) { body.botapikey = network_settings.botapikey; } break; } } const url = (0, common_1.buildApiUrl)('/account'); try { const response = await apps_common_1.httpClient.sendRequest({ method: apps_common_1.HttpMethod.POST, url: url, headers: headers, body: body, }); if (response.status === 200 || response.status === 201) { return { success: true, account: response.body, message: `اکانت ${(0, common_1.getSocialNetworkDisplayName)(type)} با موفقیت ایجاد شد`, }; } else { throw new Error(`خطا در ایجاد اکانت: ${response.body?.message || `HTTP ${response.status}`}`); } } catch (error) { const errorMessage = error.message || error.toString() || 'خطا در ایجاد اکانت'; return { success: false, error: errorMessage, }; } }, }); //# sourceMappingURL=create-account.js.map