diff --git a/src/middleware/basicauth.go b/src/internal/rest/middleware/basicauth.go similarity index 100% rename from src/middleware/basicauth.go rename to src/internal/rest/middleware/basicauth.go diff --git a/src/middleware/recovery.go b/src/internal/rest/middleware/recovery.go similarity index 100% rename from src/middleware/recovery.go rename to src/internal/rest/middleware/recovery.go diff --git a/src/internal/rest/send_rest.go b/src/internal/rest/send_rest.go index 29a7c1e..f381b32 100644 --- a/src/internal/rest/send_rest.go +++ b/src/internal/rest/send_rest.go @@ -31,6 +31,7 @@ func (controller *Send) SendText(c *fiber.Ctx) error { // add validation send message validations.ValidateSendMessage(request) + utils.SanitizePhone(&request.Phone) response, err := controller.Service.SendText(c.UserContext(), request) utils.PanicIfNeeded(err) @@ -56,6 +57,7 @@ func (controller *Send) SendImage(c *fiber.Ctx) error { //add validation send image validations.ValidateSendImage(request) + utils.SanitizePhone(&request.Phone) response, err := controller.Service.SendImage(c.UserContext(), request) utils.PanicIfNeeded(err) @@ -79,6 +81,7 @@ func (controller *Send) SendFile(c *fiber.Ctx) error { //add validation send image validations.ValidateSendFile(request) + utils.SanitizePhone(&request.Phone) response, err := controller.Service.SendFile(c.UserContext(), request) utils.PanicIfNeeded(err) @@ -102,6 +105,7 @@ func (controller *Send) SendVideo(c *fiber.Ctx) error { //add validation send image validations.ValidateSendVideo(request) + utils.SanitizePhone(&request.Phone) response, err := controller.Service.SendVideo(c.UserContext(), request) utils.PanicIfNeeded(err) @@ -120,6 +124,7 @@ func (controller *Send) SendContact(c *fiber.Ctx) error { // add validation send contect validations.ValidateSendContact(request) + utils.SanitizePhone(&request.Phone) response, err := controller.Service.SendContact(c.UserContext(), request) utils.PanicIfNeeded(err) @@ -138,6 +143,7 @@ func (controller *Send) SendLink(c *fiber.Ctx) error { err = validations.ValidateSendLink(request) utils.PanicIfNeeded(err) + utils.SanitizePhone(&request.Phone) response, err := controller.Service.SendLink(c.UserContext(), request) utils.PanicIfNeeded(err) @@ -157,6 +163,7 @@ func (controller *Send) RevokeMessage(c *fiber.Ctx) error { err = validations.ValidateRevokeMessage(request) utils.PanicIfNeeded(err) + utils.SanitizePhone(&request.Phone) response, err := controller.Service.Revoke(c.UserContext(), request) utils.PanicIfNeeded(err) @@ -176,6 +183,7 @@ func (controller *Send) UpdateMessage(c *fiber.Ctx) error { err = validations.ValidateUpdateMessage(request) utils.PanicIfNeeded(err) + utils.SanitizePhone(&request.Phone) response, err := controller.Service.UpdateMessage(c.UserContext(), request) utils.PanicIfNeeded(err) diff --git a/src/internal/rest/user_rest.go b/src/internal/rest/user_rest.go index dfa7700..882072f 100644 --- a/src/internal/rest/user_rest.go +++ b/src/internal/rest/user_rest.go @@ -35,7 +35,8 @@ func (controller *User) UserInfo(c *fiber.Ctx) error { // add validation send message validations.ValidateUserInfo(request) - + utils.SanitizePhone(&request.Phone) + response, err := controller.Service.Info(c.Context(), request) utils.PanicIfNeeded(err) @@ -53,6 +54,7 @@ func (controller *User) UserAvatar(c *fiber.Ctx) error { // add validation send message validations.ValidateUserAvatar(request) + utils.SanitizePhone(&request.Phone) response, err := controller.Service.Avatar(c.Context(), request) utils.PanicIfNeeded(err) diff --git a/src/utils/whatsapp.go b/src/utils/whatsapp.go index 5a19498..4ba836b 100644 --- a/src/utils/whatsapp.go +++ b/src/utils/whatsapp.go @@ -31,6 +31,16 @@ var ( startupTime = time.Now().Unix() ) +func SanitizePhone(phone *string) { + if phone != nil && !strings.Contains(*phone, "@") { + if len(*phone) <= 15 { + *phone = fmt.Sprintf("%s@.whatsapp.net", *phone) + } else { + *phone = fmt.Sprintf("%s@g.us", *phone) + } + } +} + func GetPlatformName(deviceID int) string { switch deviceID { case 0: