76 lines
No EOL
2.5 KiB
TypeScript
76 lines
No EOL
2.5 KiB
TypeScript
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(); |