diff --git a/Server/SQL/User.cs b/Server/SQL/User.cs index 6de7cce..4bdfffa 100644 --- a/Server/SQL/User.cs +++ b/Server/SQL/User.cs @@ -1,5 +1,6 @@ using Microsoft.EntityFrameworkCore; using Npgsql.EntityFrameworkCore.PostgreSQL; +using SkiaSharp; using System.ComponentModel.DataAnnotations.Schema; using static System.Runtime.InteropServices.JavaScript.JSType; @@ -28,5 +29,10 @@ namespace Server.SQL { return table.SingleOrDefault(data => data.mail == mail); } + + public void Update(User user) + { + table.Update(user); + } } } diff --git a/Server/Service/Login.cs b/Server/Service/Login.cs index 36e1592..866a1d1 100644 --- a/Server/Service/Login.cs +++ b/Server/Service/Login.cs @@ -11,17 +11,23 @@ namespace Server.Service { UserSQL userSql = new UserSQL(); User user; - if (req.uuid == null) + Console.WriteLine(req.uuid); + bool isNewUser = false; + if (req.uuid == "") { //최초 메일 로그인 //게스트 로그인은 허용하지 않고 무조건 구글로그인 혹은 마스토돈 로그인만 가능하게 처리하기 user = userSql.SelectMail(req.mail); //현재 닉네임을 설정하는 곳이 없기에 임시 작업 - user.nickname = ""; + if (user != null) + { + user.nickname = ""; + } } else { + //기존 유저 로그인 user = userSql.SelectUuid(req.uuid); //현재 닉네임을 설정하는 곳이 없기에 임시 작업 @@ -30,10 +36,11 @@ namespace Server.Service if(user == null) { #region 신규유저 생성 - if(req.mail == "") + if (req.mail == "") { throw new RuntimeException("not User", Error.nodata); } + isNewUser = true; user = new User(); user.mail = req.mail; user.uuid = Guid.NewGuid().ToString(); @@ -43,14 +50,21 @@ namespace Server.Service #endregion } - SaveQurry(userSql, user); + SaveQurry(userSql, user, isNewUser); 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;