@anjir/app-novinhub
Version:
نوین هاب - پلتفرم کامل مدیریت شبکههای اجتماعی، دایرکت هوشمند، و خودکارسازی پیامرسانی
172 lines • 7.91 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.novinhubUpdateAccountAction = 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.novinhubUpdateAccountAction = (0, apps_framework_1.createAction)({
auth: index_1.novinhubAuth,
name: 'update_account',
displayName: 'ویرایش اکانت',
description: 'ویرایش اطلاعات اکانت شبکه اجتماعی در نوین هاب',
props: {
accountId: apps_framework_1.Property.Number({
displayName: 'شناسه اکانت',
description: 'شناسه اکانتی که میخواهید ویرایش کنید',
required: true,
}),
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 },
],
},
}),
redirect: apps_framework_1.Property.ShortText({
displayName: 'لینک بازگشت',
description: 'لینک بازگشت در صورتی که کاربر به شبکه اجتماعی هدایت شود (اختیاری)',
required: false,
}),
// Common fields
username: apps_framework_1.Property.ShortText({
displayName: 'نام کاربری کانال',
description: 'نام کاربری کانال شبکه اجتماعی (بدون @)',
required: false,
}),
// Telegram specific fields
telegram_botusername: apps_framework_1.Property.ShortText({
displayName: 'نام کاربری ربات تلگرام',
description: 'نام کاربری ربات سفارشی تلگرام (اختیاری)',
required: false,
}),
telegram_botapikey: apps_framework_1.Property.ShortText({
displayName: 'کلید API ربات تلگرام',
description: 'کلید API ربات سفارشی تلگرام (اختیاری)',
required: false,
}),
// Bale specific fields
bale_botusername: apps_framework_1.Property.ShortText({
displayName: 'نام کاربری ربات بله',
description: 'نام کاربری ربات سفارشی بله (اختیاری)',
required: false,
}),
bale_botapikey: apps_framework_1.Property.ShortText({
displayName: 'کلید API ربات بله',
description: 'کلید API ربات سفارشی بله (اختیاری)',
required: false,
}),
// Eitaa specific fields
eitaa_token: apps_framework_1.Property.ShortText({
displayName: 'توکن کانال ایتا',
description: 'توکن کانال شبکه ایتا',
required: false,
}),
// Gap specific fields
gap_botusername: apps_framework_1.Property.ShortText({
displayName: 'نام کاربری ربات گپ',
description: 'نام کاربری ربات سفارشی گپ (اختیاری)',
required: false,
}),
gap_botapikey: apps_framework_1.Property.ShortText({
displayName: 'کلید API ربات گپ',
description: 'کلید API ربات سفارشی گپ (اختیاری)',
required: false,
}),
// Soroush specific fields
soroush_botapikey: apps_framework_1.Property.ShortText({
displayName: 'کلید API ربات سروش',
description: 'کلید API ربات سفارشی سروش (اختیاری)',
required: false,
}),
},
async run(ctx) {
const { accountId, type } = 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,
};
if (ctx.propsValue.redirect) {
body.redirect = ctx.propsValue.redirect;
}
if (ctx.propsValue.username) {
body.username = ctx.propsValue.username;
}
// Add network-specific fields
switch (type) {
case common_1.SOCIAL_NETWORKS.TELEGRAM:
if (ctx.propsValue.telegram_botusername) {
body.botusername = ctx.propsValue.telegram_botusername;
}
if (ctx.propsValue.telegram_botapikey) {
body.botapikey = ctx.propsValue.telegram_botapikey;
}
break;
case common_1.SOCIAL_NETWORKS.BALE:
if (ctx.propsValue.bale_botusername) {
body.botusername = ctx.propsValue.bale_botusername;
}
if (ctx.propsValue.bale_botapikey) {
body.botapikey = ctx.propsValue.bale_botapikey;
}
break;
case common_1.SOCIAL_NETWORKS.EITAA:
if (ctx.propsValue.eitaa_token) {
body.token = ctx.propsValue.eitaa_token;
}
break;
case common_1.SOCIAL_NETWORKS.GAP:
if (ctx.propsValue.gap_botusername) {
body.botusername = ctx.propsValue.gap_botusername;
}
if (ctx.propsValue.gap_botapikey) {
body.botapikey = ctx.propsValue.gap_botapikey;
}
break;
case common_1.SOCIAL_NETWORKS.SOROUSH:
if (ctx.propsValue.soroush_botapikey) {
body.botapikey = ctx.propsValue.soroush_botapikey;
}
break;
}
const url = (0, common_1.buildApiUrl)(`/account/${accountId}`);
try {
const response = await apps_common_1.httpClient.sendRequest({
method: apps_common_1.HttpMethod.PUT,
url: url,
headers: headers,
body: body,
});
if (response.status === 200) {
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=update-account.js.map