UNPKG

@anjir/app-novinhub

Version:

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

99 lines 4.05 kB
"use strict"; 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