imaginar/controllers/isotopeController.js
2024-10-19 20:24:54 +09:00

48 lines
1.6 KiB
JavaScript

const { Isotope } = require('../models');
const { generateInitialGreeting } = require('./chatController');
// 同位体作成ページを表示
exports.showCreateIsotopePage = async (req, res) => {
try {
// すでに同位体を作成しているか確認
const existingBot = await Isotope.findOne({ where: { user_id: req.user.id } });
if (existingBot) {
return res.status(400).send('すでに同位体を作成しています。');
}
res.render('createIsotope', { hideSidebar: true });
} catch (error) {
console.error('同位体情報の登録ページの表示中にエラーが発生しました:', error);
res.status(500).send('同位体情報の登録ページの表示に失敗しました');
}
};
// 同位体を作成
exports.createIsotope = async (req, res) => {
try {
const { name, firstPerson, personality, tone, backgroundStory, likes, dislikes } = req.body;
// 同位体作成処理
const newIsotope = await Isotope.create({
name,
firstPerson,
personality,
tone,
backgroundStory,
likes,
dislikes,
user_id: req.user.id
});
// 同位体作成後、初回挨拶メッセージを生成
await generateInitialGreeting(req.user.id, newIsotope.id);
// 同位体作成後、ダッシュボードにリダイレクト
res.redirect('/dashboard');
} catch (error) {
console.error('同位体情報の登録中にエラーが発生しました:', error);
res.status(500).json({ error: '同位体情報の登録中にエラーが発生しました' });
}
};