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