Skip to content
This repository has been archived by the owner on Jan 25, 2025. It is now read-only.

Commit

Permalink
Changed from ip to otp for node login
Browse files Browse the repository at this point in the history
  • Loading branch information
tahirmurata committed Oct 12, 2024
1 parent cdbddd5 commit ade8c9d
Show file tree
Hide file tree
Showing 6 changed files with 359 additions and 10 deletions.
38 changes: 38 additions & 0 deletions internal/database/database.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ type Service interface {

IpNode(ip netip.Addr) (sqlc.Node, error)

OTPNode(otp string) (sqlc.Node, error)

PushEntry(node sqlc.Node, visitorID int64, visitorRandom int32) error

PushFoodStall(node sqlc.Node, visitorID int64, visitorRandom int32, foods []Foods) error
Expand Down Expand Up @@ -635,6 +637,42 @@ func (s *DbService) IpNode(ip netip.Addr) (sqlc.Node, error) {
return nodeByIp, nil
}

func (s *DbService) OTPNode(otp string) (sqlc.Node, error) {
ctx := context.Background()

q, err := s.DB.Begin(ctx)
defer func(q pgx.Tx, ctx context.Context) {
_ = q.Rollback(ctx)
}(q, ctx)
if err != nil {
return sqlc.Node{}, err
}
queries := sqlc.New(q)

nodeByOTP, err := queries.GetNodeByOTP(ctx, pgtype.Text{
String: otp,
Valid: true,
})
if err != nil {
return sqlc.Node{}, err
}

err = queries.DeleteNodeOTP(ctx, pgtype.Text{
String: otp,
Valid: true,
})
if err != nil {
return sqlc.Node{}, err
}

err = q.Commit(ctx)
if err != nil {
return sqlc.Node{}, err
}

return nodeByOTP, nil
}

type NodeFood struct {
ID int
Name string
Expand Down
31 changes: 24 additions & 7 deletions internal/server/routes.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ func (s *Server) ApiRoutes() *echo.Echo {

api.GET("/visitor", s.VisitorHandler) // middleware.RateLimiter(limiterStore)

api.POST("/node", s.NodeIpHandler)
api.POST("/node", s.NodeOTPHandler)

// api.POST("/vote", s.VoteHandler) // middleware.RateLimiter(limiterStore)

Expand Down Expand Up @@ -587,21 +587,38 @@ func (s *Server) NodeUpdateFoodStallHandler(c echo.Context) error {
return c.NoContent(http.StatusOK)
}

func (s *Server) NodeIpHandler(c echo.Context) error {
type otpBody struct {
OTP string `json:"otp"`
}

func (s *Server) NodeOTPHandler(c echo.Context) error {
var otp otpBody
ip := c.RealIP()

slog.Info("turi")
slog.Info("ip", "ip", ip)

addr, err := netip.ParseAddr(ip)
err := c.Bind(&otp)
if err != nil {
slog.Error("ParseAddr", "error", err)
return echo.ErrInternalServerError
slog.Error("bind", "error", err)
return echo.ErrBadRequest
}

node, err := s.DB.IpNode(addr)
// addr, err := netip.ParseAddr(ip)
// if err != nil {
// slog.Error("ParseAddr", "error", err)
// return echo.ErrInternalServerError
// }

// node, err := s.DB.IpNode(addr)
// if err != nil {
// slog.Error("ip node", "error", err)
// return echo.ErrBadRequest
// }

node, err := s.DB.OTPNode(otp.OTP)
if err != nil {
slog.Error("ip node", "error", err)
slog.Error("otp node", "error", err)
return echo.ErrBadRequest
}

Expand Down
1 change: 1 addition & 0 deletions internal/sqlc/models.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

43 changes: 40 additions & 3 deletions internal/sqlc/query.sql.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit ade8c9d

Please sign in to comment.