diff options
| author | Vidhu Kant Sharma <vidhukant@vidhukant.com> | 2023-09-03 00:19:03 +0530 | 
|---|---|---|
| committer | Vidhu Kant Sharma <vidhukant@vidhukant.com> | 2023-09-03 00:19:03 +0530 | 
| commit | 616a151764fd1780eb0b6dc039d5a21539a8a01a (patch) | |
| tree | 454f73e06880c3635c3f88a5787fd8fbc1c2b363 /auth | |
| parent | 65cb3603ad2682deacff47a72d9050e584a00488 (diff) | |
added login with id
Diffstat (limited to 'auth')
| -rw-r--r-- | auth/auth.go | 28 | ||||
| -rw-r--r-- | auth/controller.go | 28 | ||||
| -rw-r--r-- | auth/router.go | 3 | 
3 files changed, 29 insertions, 30 deletions
diff --git a/auth/auth.go b/auth/auth.go deleted file mode 100644 index d221224..0000000 --- a/auth/auth.go +++ /dev/null @@ -1,28 +0,0 @@ -/* openbills - Server for web based Libre Billing Software - * Copyright (C) 2023  Vidhu Kant Sharma <vidhukant@vidhukant.com> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program.  If not, see <https://www.gnu.org/licenses/>. - */ - -package auth - -import ( -	"gorm.io/gorm" -	d "vidhukant.com/openbills/db" -) - -var db *gorm.DB -func init() { -	db = d.DB -} diff --git a/auth/controller.go b/auth/controller.go index bc9f15a..901d204 100644 --- a/auth/controller.go +++ b/auth/controller.go @@ -20,11 +20,17 @@ package auth  import (  	"vidhukant.com/openbills/user"  	"golang.org/x/crypto/bcrypt" +	"github.com/spf13/viper"  	"github.com/gin-gonic/gin"  	"net/http"  ) -func handleSignIn (ctx *gin.Context) { +var COST int +func init() { +	COST = viper.GetInt("cryptography.password_hashing_cost") +} + +func handleSignUp (ctx *gin.Context) {  	var user user.User  	ctx.Bind(&user) @@ -53,3 +59,23 @@ func handleSignIn (ctx *gin.Context) {  		"data": user,  	})  } + +func handleSignIn (ctx *gin.Context) { +	var u user.User +	ctx.Bind(&u) + +	var err error + +	err = user.CheckPassword(u.ID, u.Password) +	if err != nil { +		// TODO: handle potential errors +		ctx.Error(err) +		ctx.Abort() +		return +	} + +	ctx.JSON(http.StatusOK, gin.H{ +		"message": "success", +		"data": u, +	}) +} diff --git a/auth/router.go b/auth/router.go index 4a0bb94..b8d5b0d 100644 --- a/auth/router.go +++ b/auth/router.go @@ -24,6 +24,7 @@ import (  func Routes(route *gin.RouterGroup) {  	g := route.Group("/auth")  	{ -		g.POST("/sign-in", handleSignIn) +		g.POST("/signup", handleSignUp) +		g.POST("/signin", handleSignIn)  	}  }  |