From 3bb912d28c8825facef301e48c550f1741e1a2dc Mon Sep 17 00:00:00 2001 From: Aldino Kemal Date: Sun, 14 Jul 2024 12:52:13 +0700 Subject: [PATCH] feat: add pair code --- src/internal/rest/app.go | 4 ++-- src/services/app.go | 8 +------- src/views/components/AppLogin.js | 5 +++++ src/views/components/AppLoginWithCode.js | 17 +++++++++++++++-- src/views/index.html | 2 +- 5 files changed, 24 insertions(+), 12 deletions(-) diff --git a/src/internal/rest/app.go b/src/internal/rest/app.go index 467fc00..c72cde0 100644 --- a/src/internal/rest/app.go +++ b/src/internal/rest/app.go @@ -38,7 +38,7 @@ func (handler *App) Login(c *fiber.Ctx) error { } func (handler *App) LoginWithCode(c *fiber.Ctx) error { - loginCode, err := handler.Service.LoginWithCode(c.UserContext(), c.Query("phone")) + pairCode, err := handler.Service.LoginWithCode(c.UserContext(), c.Query("phone")) utils.PanicIfNeeded(err) return c.JSON(utils.ResponseData{ @@ -46,7 +46,7 @@ func (handler *App) LoginWithCode(c *fiber.Ctx) error { Code: "SUCCESS", Message: "Login with code success", Results: map[string]any{ - "login_code": loginCode, + "pair_code": pairCode, }, }) } diff --git a/src/services/app.go b/src/services/app.go index 859871a..7530032 100644 --- a/src/services/app.go +++ b/src/services/app.go @@ -7,7 +7,6 @@ import ( "github.com/aldinokemal/go-whatsapp-web-multidevice/config" domainApp "github.com/aldinokemal/go-whatsapp-web-multidevice/domains/app" pkgError "github.com/aldinokemal/go-whatsapp-web-multidevice/pkg/error" - "github.com/aldinokemal/go-whatsapp-web-multidevice/pkg/whatsapp" "github.com/aldinokemal/go-whatsapp-web-multidevice/validations" fiberUtils "github.com/gofiber/fiber/v2/utils" "github.com/sirupsen/logrus" @@ -103,12 +102,7 @@ func (service serviceApp) LoginWithCode(ctx context.Context, phoneNumber string) return loginCode, pkgError.ErrAlreadyLoggedIn } - // check if on whatsapp - if exist := whatsapp.IsOnWhatsapp(service.WaCli, phoneNumber+"@s.whatsapp.net"); !exist { - return loginCode, pkgError.InvalidJID(fmt.Sprintf("Phone %s is not on whatsapp", phoneNumber)) - } - - loginCode, err = service.WaCli.PairPhone(phoneNumber, true, whatsmeow.PairClientChrome, "Chrome") + loginCode, err = service.WaCli.PairPhone(phoneNumber, true, whatsmeow.PairClientChrome, "Chrome (Linux)") if err != nil { return loginCode, err } diff --git a/src/views/components/AppLogin.js b/src/views/components/AppLogin.js index b276e7f..cacb898 100644 --- a/src/views/components/AppLogin.js +++ b/src/views/components/AppLogin.js @@ -1,5 +1,8 @@ export default { name: 'AppLogin', + props: { + connected: null, + }, data() { return { login_link: '', @@ -9,6 +12,8 @@ export default { methods: { async openModal() { try { + if (this.connected) throw Error('you already logged in :)'); + await this.submitApi(); $('#modalLogin').modal({ onApprove: function () { diff --git a/src/views/components/AppLoginWithCode.js b/src/views/components/AppLoginWithCode.js index e573c78..7ff2eac 100644 --- a/src/views/components/AppLoginWithCode.js +++ b/src/views/components/AppLoginWithCode.js @@ -3,6 +3,17 @@ export default { props: { connected: null, }, + watch: { + connected: function(val) { + if (val) { + // reset form + this.phone = ''; + this.pair_code = null; + + $('#modalLoginWithCode').modal('hide'); + } + }, + }, data: () => { return { phone: '', @@ -13,6 +24,8 @@ export default { methods: { async openModal() { try { + if (this.connected) throw Error('you already logged in :)'); + $('#modalLoginWithCode').modal({ onApprove: function() { return false; @@ -26,8 +39,8 @@ export default { if (this.submitting) return; try { this.submitting = true; - const { response } = await this.submitApi(); - this.pair_code = response.pair_code; + const { data } = await this.submitApi(); + this.pair_code = data.results.pair_code; } catch (err) { showErrorInfo(err); } finally { diff --git a/src/views/index.html b/src/views/index.html index 7e6a082..8f3c029 100644 --- a/src/views/index.html +++ b/src/views/index.html @@ -41,7 +41,7 @@
- +