astro_avtourist/scripts/create-review.ts

76 lines
No EOL
2.5 KiB
TypeScript
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import PocketBase from 'pocketbase';
const PB_URL = process.env.POCKETBASE_URL || 'http://127.0.0.1:8090';
const ADMIN_EMAIL = process.env.PB_ADMIN_EMAIL;
const ADMIN_PASSWORD = process.env.PB_ADMIN_PASSWORD;
async function createReview() {
if (!ADMIN_EMAIL || !ADMIN_PASSWORD) {
console.error('❌ Укажите PB_ADMIN_EMAIL и PB_ADMIN_PASSWORD в .env');
process.exit(1);
}
const pb = new PocketBase(PB_URL);
try {
await pb.admins.authWithPassword(ADMIN_EMAIL, ADMIN_PASSWORD);
console.log('✅ Подключено к PocketBase');
} catch (e) {
console.error('❌ Ошибка авторизации admin');
process.exit(1);
}
const testEmail = 'vasiliy.sinicin@yandex.ru';
const testPassword = 'TestPass123!';
let userId: string;
try {
const existingUser = await pb.collection('users').getList(1, 1, {
filter: `email = "${testEmail}"`,
});
if (existingUser.items.length > 0) {
userId = existingUser.items[0].id;
console.log(' Использован существующий пользователь:', userId);
} else {
const user = await pb.collection('users').create({
email: testEmail,
password: testPassword,
passwordConfirm: testPassword,
name: 'Тестовый Пользователь',
});
userId = user.id;
console.log('✅ Создан пользователь:', userId);
}
} catch (e: any) {
console.error('❌ Ошибка создания пользователя:', e.data || e.message);
process.exit(1);
}
try {
const review = await pb.collection('reviews').create({
user: userId,
name: 'Василий',
surname: 'Синицин',
profession: 'Предприниматель',
text: 'Помогли вернуть права после лишения. Всё сделали быстро и профессионально. Через 2 месяца права уже были у меня. Рекомендую!',
rating: 5,
votesCount: 0,
status: 'published',
});
console.log('✅ Отзыв создан');
console.log(' ID:', review.id);
console.log(' rating:', review.rating);
console.log(' status:', review.status);
} catch (e: any) {
if (e.data?.message?.includes('already exists')) {
console.log(' Отзыв уже существует');
} else {
console.error('❌ Ошибка:', e.data || e.message);
}
}
}
createReview();