로그인시 데이터 중복 생성 버그 수정

This commit is contained in:
김판돌 2023-12-02 21:55:53 +09:00
parent 49ef0b8e47
commit e71c3c9fb9
2 changed files with 26 additions and 6 deletions

View File

@ -1,5 +1,6 @@
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Npgsql.EntityFrameworkCore.PostgreSQL; using Npgsql.EntityFrameworkCore.PostgreSQL;
using SkiaSharp;
using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations.Schema;
using static System.Runtime.InteropServices.JavaScript.JSType; using static System.Runtime.InteropServices.JavaScript.JSType;
@ -28,5 +29,10 @@ namespace Server.SQL
{ {
return table.SingleOrDefault(data => data.mail == mail); return table.SingleOrDefault(data => data.mail == mail);
} }
public void Update(User user)
{
table.Update(user);
}
} }
} }

View File

@ -11,17 +11,23 @@ namespace Server.Service
{ {
UserSQL userSql = new UserSQL(); UserSQL userSql = new UserSQL();
User user; User user;
if (req.uuid == null) Console.WriteLine(req.uuid);
bool isNewUser = false;
if (req.uuid == "")
{ {
//최초 메일 로그인 //최초 메일 로그인
//게스트 로그인은 허용하지 않고 무조건 구글로그인 혹은 마스토돈 로그인만 가능하게 처리하기 //게스트 로그인은 허용하지 않고 무조건 구글로그인 혹은 마스토돈 로그인만 가능하게 처리하기
user = userSql.SelectMail(req.mail); user = userSql.SelectMail(req.mail);
//현재 닉네임을 설정하는 곳이 없기에 임시 작업 //현재 닉네임을 설정하는 곳이 없기에 임시 작업
user.nickname = ""; if (user != null)
{
user.nickname = "";
}
} }
else else
{ {
//기존 유저 로그인
user = userSql.SelectUuid(req.uuid); user = userSql.SelectUuid(req.uuid);
//현재 닉네임을 설정하는 곳이 없기에 임시 작업 //현재 닉네임을 설정하는 곳이 없기에 임시 작업
@ -30,10 +36,11 @@ namespace Server.Service
if(user == null) if(user == null)
{ {
#region #region
if(req.mail == "") if (req.mail == "")
{ {
throw new RuntimeException("not User", Error.nodata); throw new RuntimeException("not User", Error.nodata);
} }
isNewUser = true;
user = new User(); user = new User();
user.mail = req.mail; user.mail = req.mail;
user.uuid = Guid.NewGuid().ToString(); user.uuid = Guid.NewGuid().ToString();
@ -43,14 +50,21 @@ namespace Server.Service
#endregion #endregion
} }
SaveQurry(userSql, user); SaveQurry(userSql, user, isNewUser);
return makeResp(user); return makeResp(user);
} }
public void SaveQurry(UserSQL userSql, User user) public void SaveQurry(UserSQL userSql, User user, bool isNewUser)
{ {
userSql.Insert(user); if (isNewUser)
{
userSql.Insert(user);
}
else
{
userSql.Update(user);
}
} }
public override Protocol ProtocolValue() => Protocol.Login; public override Protocol ProtocolValue() => Protocol.Login;