|
@@ -0,0 +1,91 @@
|
|
|
+package whatsapp
|
|
|
+
|
|
|
+import (
|
|
|
+ "context"
|
|
|
+ "wechat-api/ent/predicate"
|
|
|
+ "wechat-api/ent/whatsapp"
|
|
|
+ "wechat-api/internal/utils/dberrorhandler"
|
|
|
+
|
|
|
+ "wechat-api/internal/svc"
|
|
|
+ "wechat-api/internal/types"
|
|
|
+
|
|
|
+ "github.com/zeromicro/go-zero/core/logx"
|
|
|
+)
|
|
|
+
|
|
|
+type GetAllowBlockListLogic struct {
|
|
|
+ logx.Logger
|
|
|
+ ctx context.Context
|
|
|
+ svcCtx *svc.ServiceContext
|
|
|
+}
|
|
|
+
|
|
|
+func NewGetAllowBlockListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetAllowBlockListLogic {
|
|
|
+ return &GetAllowBlockListLogic{
|
|
|
+ Logger: logx.WithContext(ctx),
|
|
|
+ ctx: ctx,
|
|
|
+ svcCtx: svcCtx}
|
|
|
+}
|
|
|
+
|
|
|
+func (l *GetAllowBlockListLogic) GetAllowBlockList(req *types.IDReq) (resp *types.WhatsappAllowBlockListResp, err error) {
|
|
|
+ isAdmin := l.ctx.Value("isAdmin").(bool)
|
|
|
+ var predicates []predicate.Whatsapp
|
|
|
+ predicates = append(predicates, whatsapp.IDEQ(req.Id))
|
|
|
+ if !isAdmin {
|
|
|
+ organizationId := l.ctx.Value("organizationId").(uint64)
|
|
|
+ predicates = append(predicates, whatsapp.OrganizationID(organizationId))
|
|
|
+ }
|
|
|
+ whatsappInfo, err := l.svcCtx.DB.Whatsapp.Query().
|
|
|
+ Where(predicates...).
|
|
|
+ Only(l.ctx)
|
|
|
+
|
|
|
+ if err != nil {
|
|
|
+ return nil, dberrorhandler.DefaultEntError(l.Logger, err, req)
|
|
|
+ }
|
|
|
+
|
|
|
+ resp = &types.WhatsappAllowBlockListResp{}
|
|
|
+ resp.Data = types.WhatsappAllowBlockListRespData{}
|
|
|
+
|
|
|
+ allowListData := ""
|
|
|
+ if whatsappInfo.AllowList == nil || len(whatsappInfo.AllowList) == 0 || whatsappInfo.AllowList[0] == "ALL" {
|
|
|
+ allowListData = "ALL"
|
|
|
+ } else if len(whatsappInfo.AllowList) > 0 {
|
|
|
+ for _, av := range whatsappInfo.AllowList {
|
|
|
+ allowListData += av + "\n"
|
|
|
+ }
|
|
|
+ }
|
|
|
+ resp.Data.AllowList = &allowListData
|
|
|
+
|
|
|
+ groupAllowListData := ""
|
|
|
+ if whatsappInfo.GroupAllowList == nil || len(whatsappInfo.GroupAllowList) == 0 || whatsappInfo.GroupAllowList[0] == "ALL" {
|
|
|
+ groupAllowListData = "ALL"
|
|
|
+ } else if len(whatsappInfo.GroupAllowList) > 0 {
|
|
|
+ for _, gav := range whatsappInfo.GroupAllowList {
|
|
|
+ groupAllowListData += gav + "\n"
|
|
|
+ }
|
|
|
+ }
|
|
|
+ resp.Data.GroupAllowList = &groupAllowListData
|
|
|
+
|
|
|
+ blockListData := ""
|
|
|
+ if whatsappInfo.BlockList != nil && len(whatsappInfo.BlockList) > 0 {
|
|
|
+ if whatsappInfo.BlockList[0] == "ALL" {
|
|
|
+ blockListData = "ALL"
|
|
|
+ } else {
|
|
|
+ for _, bv := range whatsappInfo.BlockList {
|
|
|
+ blockListData += bv + "\n"
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ resp.Data.BlockList = &blockListData
|
|
|
+
|
|
|
+ groupBlockListData := ""
|
|
|
+ if whatsappInfo.GroupBlockList != nil && len(whatsappInfo.GroupBlockList) > 0 {
|
|
|
+ if whatsappInfo.GroupBlockList[0] == "ALL" {
|
|
|
+ groupBlockListData = "ALL"
|
|
|
+ } else {
|
|
|
+ for _, gbv := range whatsappInfo.GroupBlockList {
|
|
|
+ blockListData += gbv + "\n"
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ resp.Data.GroupBlockList = &groupBlockListData
|
|
|
+ return resp, nil
|
|
|
+}
|