aboutsummaryrefslogtreecommitdiff
path: root/auth
diff options
context:
space:
mode:
Diffstat (limited to 'auth')
-rw-r--r--auth/auth.go28
-rw-r--r--auth/controller.go28
-rw-r--r--auth/router.go3
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)
}
}