48 lines
1.6 KiB
JavaScript
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: '同位体情報の登録中にエラーが発生しました' });
|
|
}
|
|
};
|