Browse Source

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.
pull/276/head
Aldino Kemal 11 months ago
parent
commit
6b5f87dba8
  1. 18
      src/services/group.go
  2. 2
      src/validations/group_validation.go

18
src/services/group.go

@ -161,11 +161,19 @@ func (service groupService) ManageGroupRequestParticipants(ctx context.Context,
} }
for _, participant := range participants { 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 return result, nil

2
src/validations/group_validation.go

@ -6,6 +6,7 @@ import (
domainGroup "github.com/aldinokemal/go-whatsapp-web-multidevice/domains/group" domainGroup "github.com/aldinokemal/go-whatsapp-web-multidevice/domains/group"
pkgError "github.com/aldinokemal/go-whatsapp-web-multidevice/pkg/error" pkgError "github.com/aldinokemal/go-whatsapp-web-multidevice/pkg/error"
validation "github.com/go-ozzo/ozzo-validation/v4" validation "github.com/go-ozzo/ozzo-validation/v4"
"go.mau.fi/whatsmeow"
) )
func ValidateJoinGroupWithLink(ctx context.Context, request domainGroup.JoinGroupWithLinkRequest) error { 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.GroupID, validation.Required),
validation.Field(&request.Participants, validation.Required), validation.Field(&request.Participants, validation.Required),
validation.Field(&request.Participants, validation.Each(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 { if err != nil {

Loading…
Cancel
Save