エラーハンドリングを登録
authorOHASHI, Norikazu <katz@neko-mori.sakura.ne.jp>
Sun, 17 Mar 2019 15:01:52 +0000 (00:01 +0900)
committerOHASHI, Norikazu <katz@neko-mori.sakura.ne.jp>
Sun, 17 Mar 2019 15:01:52 +0000 (00:01 +0900)
sinatra/app/controllers/web_gui.rb

index 8dc1b21..f6dbdd2 100644 (file)
@@ -34,9 +34,13 @@ class WebGui < Sinatra::Base
     email = params[:email]
     passwd = params[:passwd]
 
-    id = UserAccount.createAccount(name, full_name, email, passwd)
-    
-    redirect "/user_home/#{id}"
+    begin
+      id = UserAccount.createAccount(name, full_name, email, passwd)
+      redirect "/user_home/#{id}"
+    rescue UserAccount::AlreadyInstanceError 
+      status 406
+      "すでに登録済みのアカウント名が指定されています。"
+    end
   end
 
   get '/login' do
@@ -46,10 +50,15 @@ class WebGui < Sinatra::Base
   post '/login' do
     name = params[:name]
     passwd = params[:passwd]
-    
-    id = UserAccount.checkPasswd(name, passwd);
-    @id = id
-    redirect "/user_home/#{id}"
+
+    begin
+      id = UserAccount.checkPasswd(name, passwd);
+      redirect "/user_home/#{id}"
+    rescue UserAccount::NotfondInstanceError,
+           UserAccount::AuthenticationError
+      status 401
+      "認証に失敗しました アカウント、 パスワードを確認してください。"
+    end
   end
 
   get '/user_home/:id' do