@anjir/app-novinhub
Version:
نوین هاب - پلتفرم کامل مدیریت شبکههای اجتماعی، دایرکت هوشمند، و خودکارسازی پیامرسانی
99 lines • 4.05 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.novinhubListPostsAction = void 0;
const apps_framework_1 = require("@anjir/apps-framework");
const apps_common_1 = require("@anjir/apps-common");
const index_1 = require("../../index");
exports.novinhubListPostsAction = (0, apps_framework_1.createAction)({
auth: index_1.novinhubAuth,
name: 'list_posts',
displayName: 'لیست پستها',
description: 'دریافت لیست گروه پستهای کاربر از نوین هاب',
props: {
account_ids: apps_framework_1.Property.Array({
displayName: 'Account IDs',
description: 'فیلتر شناسههای اکانت (اختیاری)',
required: false,
}),
order: apps_framework_1.Property.StaticDropdown({
displayName: 'Order',
description: 'نحوه مرتبسازی پستها',
required: false,
options: {
disabled: false,
options: [
{ label: 'بر اساس شناسه', value: 'id' },
{ label: 'بر اساس تاریخ زمانبندی', value: 'schedule_date' },
],
},
}),
publish_from: apps_framework_1.Property.DateTime({
displayName: 'Publish From',
description: 'فیلتر پستهای بعد از این تاریخ (اختیاری)',
required: false,
}),
publish_to: apps_framework_1.Property.DateTime({
displayName: 'Publish To',
description: 'فیلتر پستهای قبل از این تاریخ (اختیاری)',
required: false,
}),
page: apps_framework_1.Property.Number({
displayName: 'Page',
description: 'شماره صفحه (پیشفرض: 1)',
required: false,
defaultValue: 1,
}),
},
async run(ctx) {
const { account_ids, order, publish_from, publish_to, page } = ctx.propsValue;
const headers = {
'Content-Type': 'application/json',
};
// ساخت query parameters
const queryParams = new URLSearchParams();
queryParams.append('access_token', ctx.auth.access_token);
if (account_ids && account_ids.length > 0) {
account_ids.forEach((id) => {
if (typeof id === 'string') {
queryParams.append('account_ids[]', id);
}
});
}
if (order)
queryParams.append('order', order);
if (publish_from) {
queryParams.append('publish_from', new Date(publish_from).toISOString().split('T')[0]);
}
if (publish_to) {
queryParams.append('publish_to', new Date(publish_to).toISOString().split('T')[0]);
}
if (page)
queryParams.append('page', page.toString());
const url = `https://api.novinhub.com/v2/post?${queryParams.toString()}`;
try {
const response = await apps_common_1.httpClient.sendRequest({
method: apps_common_1.HttpMethod.GET,
url: url,
headers: headers,
});
if (response.status === 200) {
return {
success: true,
posts: response.body,
message: 'لیست پستها با موفقیت دریافت شد',
};
}
else {
throw new Error(`خطا در دریافت لیست پستها: ${response.body?.message || `HTTP ${response.status}`}`);
}
}
catch (error) {
const errorMessage = error.message || error.toString() || 'خطا در دریافت لیست پستها';
return {
success: false,
error: errorMessage,
};
}
},
});
//# sourceMappingURL=list-posts.js.map