summaryrefslogtreecommitdiff
path: root/api/login.go
diff options
context:
space:
mode:
Diffstat (limited to 'api/login.go')
-rw-r--r--api/login.go61
1 files changed, 0 insertions, 61 deletions
diff --git a/api/login.go b/api/login.go
deleted file mode 100644
index ef43304..0000000
--- a/api/login.go
+++ /dev/null
@@ -1,61 +0,0 @@
-package api
-
-import (
- "encoding/json"
- "net/http"
-
- "github.com/go-playground/validator/v10"
- redqdb "sinanmohd.com/redq/db"
-)
-
-type loginAPI struct {
- db *redqdb.SafeDB
- validate *validator.Validate
- req *RequestLogin
- resp *ResponseLogin
-}
-
-type RequestLogin struct {
- Account *redqdb.Account `validate:"required"`
-}
-
-type ResponseLogin struct {
- Account *redqdb.Account
-}
-
-func newLogin(db *redqdb.SafeDB) *loginAPI {
- a := &loginAPI{}
- a.db = db
- a.validate = validator.New(validator.WithRequiredStructEnabled())
-
- return a
-}
-
-func (a *loginAPI) ServeHTTP(rw http.ResponseWriter, r *http.Request) {
- a.req = &RequestLogin{}
- a.resp = &ResponseLogin{}
-
- err := unmarshal(r.Body, a.req)
- if err == nil {
- err = a.validate.Struct(a.req)
- }
- if err != nil {
- handleError(err, rw, http.StatusUnprocessableEntity)
- return
- }
-
- err = a.req.Account.Login(a.db)
- if err != nil {
- handleError(err, rw, http.StatusUnauthorized)
- return
- }
- a.resp.Account = a.req.Account
-
- json, err := json.Marshal(a.resp)
- if err != nil {
- handleError(err, rw, http.StatusInternalServerError)
- return
- }
-
- rw.Write(json)
-}