@anjir/app-novinhub
Version:
نوین هاب - پلتفرم کامل مدیریت شبکههای اجتماعی، دایرکت هوشمند، و خودکارسازی پیامرسانی
121 lines • 4.94 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.novinhubListCommentsAction = 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.novinhubListCommentsAction = (0, apps_framework_1.createAction)({
auth: index_1.novinhubAuth,
name: 'list_comments',
displayName: 'لیست کامنتها',
description: 'دریافت لیست کامنتهای کاربر در نوین هاب',
props: {
tag: apps_framework_1.Property.Array({
displayName: 'تگهای کامنت',
description: 'فیلتر بر اساس شناسه تگهای کامنت (اختیاری)',
required: false,
properties: {
tag_id: apps_framework_1.Property.Number({
displayName: 'شناسه تگ',
description: 'شناسه تگ کامنت',
required: true,
}),
},
}),
status: apps_framework_1.Property.StaticDropdown({
displayName: 'وضعیت کامنت',
description: 'فیلتر بر اساس وضعیت کامنت (اختیاری)',
required: false,
options: {
disabled: false,
options: [
{ label: 'فعال', value: 'active' },
{ label: 'غیرفعال', value: 'inactive' },
{ label: 'در انتظار تایید', value: 'pending' },
{ label: 'رد شده', value: 'rejected' },
],
},
}),
date_from: apps_framework_1.Property.DateTime({
displayName: 'تاریخ شروع',
description: 'فیلتر کامنتهای بعد از این تاریخ (اختیاری)',
required: false,
}),
date_to: apps_framework_1.Property.DateTime({
displayName: 'تاریخ پایان',
description: 'فیلتر کامنتهای قبل از این تاریخ (اختیاری)',
required: false,
}),
search: apps_framework_1.Property.ShortText({
displayName: 'جستجو',
description: 'جستجو در متن کامنت (اختیاری)',
required: false,
}),
after: apps_framework_1.Property.ShortText({
displayName: 'مرجع صفحه بعدی',
description: 'مرجع برای دریافت صفحه بعدی (اختیاری)',
required: false,
}),
before: apps_framework_1.Property.ShortText({
displayName: 'مرجع صفحه قبلی',
description: 'مرجع برای دریافت صفحه قبلی (اختیاری)',
required: false,
}),
},
async run(ctx) {
const { tag, status, date_from, date_to, search, after, before } = ctx.propsValue;
const headers = {
'Content-Type': 'application/json',
'Authorization': `Bearer ${ctx.auth.access_token}`,
};
const queryParams = {};
if (tag && tag.length > 0) {
queryParams.tag = tag.map((item) => item.tag_id);
}
if (status) {
queryParams.status = status;
}
if (date_from) {
queryParams.date_from = new Date(date_from).toISOString().split('T')[0];
}
if (date_to) {
queryParams.date_to = new Date(date_to).toISOString().split('T')[0];
}
if (search) {
queryParams.search = search;
}
if (after) {
queryParams.after = after;
}
if (before) {
queryParams.before = before;
}
const url = (0, common_1.buildApiUrl)('/comment', queryParams);
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,
comments: 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-comments.js.map