@anjir/app-novinhub
Version:
نوین هاب - پلتفرم کامل مدیریت شبکههای اجتماعی، دایرکت هوشمند، و خودکارسازی پیامرسانی
176 lines • 8.88 kB
JavaScript
"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