From 6b5f87dba889695b5876ff31ba8ca9c434767df9 Mon Sep 17 00:00:00 2001 From: Aldino Kemal Date: Sat, 19 Apr 2025 19:17:00 +0700 Subject: [PATCH] feat: Enhance participant request management with error handling - Updated ManageGroupRequestParticipants method to include error handling for participant requests. - Added validation for the Action field in participant management requests to ensure it is not empty and is one of the allowed values. --- src/services/group.go | 18 +++++++++++++----- src/validations/group_validation.go | 2 ++ 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/services/group.go b/src/services/group.go index ac99d79..2c31bb6 100644 --- a/src/services/group.go +++ b/src/services/group.go @@ -161,11 +161,19 @@ func (service groupService) ManageGroupRequestParticipants(ctx context.Context, } for _, participant := range participants { - result = append(result, domainGroup.ParticipantStatus{ - Participant: participant.JID.String(), - Status: "success", - Message: fmt.Sprintf("Action %s success", request.Action), - }) + if participant.Error != 0 { + result = append(result, domainGroup.ParticipantStatus{ + Participant: participant.JID.String(), + Status: "error", + Message: fmt.Sprintf("Action %s failed (code %d)", request.Action, participant.Error), + }) + } else { + result = append(result, domainGroup.ParticipantStatus{ + Participant: participant.JID.String(), + Status: "success", + Message: fmt.Sprintf("Action %s success", request.Action), + }) + } } return result, nil diff --git a/src/validations/group_validation.go b/src/validations/group_validation.go index be4b92b..cd6ab5a 100644 --- a/src/validations/group_validation.go +++ b/src/validations/group_validation.go @@ -6,6 +6,7 @@ import ( domainGroup "github.com/aldinokemal/go-whatsapp-web-multidevice/domains/group" pkgError "github.com/aldinokemal/go-whatsapp-web-multidevice/pkg/error" validation "github.com/go-ozzo/ozzo-validation/v4" + "go.mau.fi/whatsmeow" ) func ValidateJoinGroupWithLink(ctx context.Context, request domainGroup.JoinGroupWithLinkRequest) error { @@ -77,6 +78,7 @@ func ValidateManageGroupRequestParticipants(ctx context.Context, request domainG validation.Field(&request.GroupID, validation.Required), validation.Field(&request.Participants, validation.Required), validation.Field(&request.Participants, validation.Each(validation.Required)), + validation.Field(&request.Action, validation.Required, validation.In(whatsmeow.ParticipantChangeApprove, whatsmeow.ParticipantChangeReject)), ) if err != nil {