host.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package host
  2. import (
  3. "errors"
  4. "fmt"
  5. "log"
  6. "github.com/gin-gonic/gin"
  7. "github.com/gravitl/netmaker/logger"
  8. "github.com/gravitl/netmaker/models"
  9. "github.com/gravitl/netmaker/turnserver/internal/auth"
  10. errpkg "github.com/gravitl/netmaker/turnserver/internal/errors"
  11. "github.com/gravitl/netmaker/turnserver/internal/utils"
  12. )
  13. // Register - handles the host registration
  14. func Register(c *gin.Context) {
  15. req := models.HostTurnRegister{}
  16. if err := c.ShouldBindJSON(&req); err != nil {
  17. utils.ReturnErrorResponse(c, errpkg.FormatError(err, errpkg.Internal))
  18. return
  19. }
  20. log.Printf("----> REG: %+v", req)
  21. auth.RegisterNewHostWithTurn(req.HostID, req.HostPassHash)
  22. utils.ReturnSuccessResponse(c,
  23. fmt.Sprintf("registered host (%s) successfully", req.HostID), nil)
  24. }
  25. // Remove - unregisters the host from turn server
  26. func Remove(c *gin.Context) {
  27. hostID, _ := c.GetQuery("host_id")
  28. if hostID == "" {
  29. logger.Log(0, "host id is required")
  30. utils.ReturnErrorResponse(c,
  31. errpkg.FormatError(errors.New("host id is required"), errpkg.BadRequest))
  32. return
  33. }
  34. utils.ReturnSuccessResponse(c,
  35. fmt.Sprintf("unregistered host (%s) successfully", hostID), nil)
  36. }