export-data-affiliate-transaction-merge-dev #96
			
				
			
		
		
		
	|  | @ -0,0 +1,36 @@ | |||
| package client | ||||
| 
 | ||||
| import ( | ||||
| 	"encoding/json" | ||||
| 	"errors" | ||||
| 	"git.selly.red/Selly-Modules/natsio" | ||||
| 	"git.selly.red/Selly-Modules/natsio/model" | ||||
| 	"git.selly.red/Selly-Modules/natsio/subject" | ||||
| ) | ||||
| 
 | ||||
| // Campaign ...
 | ||||
| type Campaign struct{} | ||||
| 
 | ||||
| // GetCampaign ...
 | ||||
| func GetCampaign() Campaign { | ||||
| 	return Campaign{} | ||||
| } | ||||
| 
 | ||||
| // GetCampaignTransaction ...
 | ||||
| func (c Campaign) GetCampaignTransaction(p model.GetCampaignTransactionsRequest) (*model.ResponseCampaignTransactionAll, error) { | ||||
| 	msg, err := natsio.GetServer().Request(subject.Campaign.GetListCampaignTransactionAdminInfoByIDs, toBytes(p)) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	var r struct { | ||||
| 		Data  *model.ResponseCampaignTransactionAll `json:"data"` | ||||
| 		Error string                                `json:"error"` | ||||
| 	} | ||||
| 	if err = json.Unmarshal(msg.Data, &r); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	if r.Error != "" { | ||||
| 		return nil, errors.New(r.Error) | ||||
| 	} | ||||
| 	return r.Data, nil | ||||
| } | ||||
|  | @ -58,4 +58,8 @@ type CashFlowOptions struct { | |||
| 	AffiliateTransactionCode string `json:"affiliateTransactionCode,omitempty"` | ||||
| 	AffiliateCampaignID      string `json:"affiliateCampaignId,omitempty"` | ||||
| 	AffiliateCampaignName    string `json:"affiliateCampaignName,omitempty"` | ||||
| 
 | ||||
| 	// Campaign
 | ||||
| 	CampaignID   string `json:"campaignId,omitempty"` | ||||
| 	CampaignName string `json:"campaignName,omitempty"` | ||||
| } | ||||
|  |  | |||
|  | @ -0,0 +1,14 @@ | |||
| package model | ||||
| 
 | ||||
| import "time" | ||||
| 
 | ||||
| // GetCampaignTransactionsRequest ...
 | ||||
| type GetCampaignTransactionsRequest struct { | ||||
| 	Campaign string    `json:"campaign"` | ||||
| 	Keyword  string    `json:"keyword"` | ||||
| 	Status   string    `json:"status"` | ||||
| 	FromAt   time.Time `json:"fromAt"` | ||||
| 	ToAt     time.Time `json:"toAt"` | ||||
| 	Page     int64     `json:"page"` | ||||
| 	Limit    int64     `json:"limit"` | ||||
| } | ||||
|  | @ -0,0 +1,52 @@ | |||
| package model | ||||
| 
 | ||||
| import "go.mongodb.org/mongo-driver/bson/primitive" | ||||
| 
 | ||||
| // ResponseCampaignTransactionAll ...
 | ||||
| type ResponseCampaignTransactionAll struct { | ||||
| 	List  []ResponseNatsCampaignTransaction `json:"list"` | ||||
| 	Total int64                             `json:"total"` | ||||
| 	Limit int64                             `json:"limit"` | ||||
| } | ||||
| 
 | ||||
| // ResponseNatsCampaignTransaction ...
 | ||||
| type ResponseNatsCampaignTransaction struct { | ||||
| 	ID             string                             `json:"_id"` | ||||
| 	Cash           float64                            `json:"cash"` | ||||
| 	Campaign       ResponseCampaignShortInfo          `json:"campaign"` | ||||
| 	Options        ResponseCampaignTransactionOptions `json:"options"` | ||||
| 	Seller         primitive.ObjectID                 `json:"seller"` | ||||
| 	Type           string                             `json:"type"` | ||||
| 	Status         string                             `json:"status"` | ||||
| 	RejectedReason string                             `json:"rejectedReason"` | ||||
| 	CreatedAt      string                             `json:"createdAt"` | ||||
| 	UpdatedAt      string                             `json:"updatedAt"` | ||||
| 	Item           *ResponseCampaignItemShortInfo     `json:"item"` | ||||
| 	ApprovedBy     primitive.ObjectID                 `json:"approvedBy,omitempty"` | ||||
| 	RejectedBy     primitive.ObjectID                 `json:"rejectedBy,omitempty"` | ||||
| 	ApprovedAt     string                             `json:"approvedAt,omitempty"` | ||||
| 	RejectedAt     string                             `json:"rejectedAt,omitempty"` | ||||
| 	CompletedAt    string                             `json:"completedAt,omitempty"` | ||||
| } | ||||
| 
 | ||||
| // ResponseCampaignShortInfo ...
 | ||||
| type ResponseCampaignShortInfo struct { | ||||
| 	ID     string `json:"_id"` | ||||
| 	Name   string `json:"name"` | ||||
| 	Status string `json:"status"` | ||||
| } | ||||
| 
 | ||||
| // ResponseCampaignItemShortInfo ...
 | ||||
| type ResponseCampaignItemShortInfo struct { | ||||
| 	ID     string `json:"_id"` | ||||
| 	Name   string `json:"name"` | ||||
| 	Status string `json:"status"` | ||||
| } | ||||
| 
 | ||||
| // ResponseCampaignTransactionOptions ...
 | ||||
| type ResponseCampaignTransactionOptions struct { | ||||
| 	Link           string `json:"link"` | ||||
| 	SocialChannel  string `json:"socialChannel"` | ||||
| 	Milestone      int64  `json:"milestone"` | ||||
| 	MilestoneTitle string `json:"milestoneTitle"` | ||||
| } | ||||
|  | @ -0,0 +1,15 @@ | |||
| package subject | ||||
| 
 | ||||
| import "fmt" | ||||
| 
 | ||||
| // getCampaignValue ...
 | ||||
| func getCampaignValue(val string) string { | ||||
| 	return fmt.Sprintf("%s.%s", prefixes.Campaign, val) | ||||
| } | ||||
| 
 | ||||
| // Campaign ...
 | ||||
| var Campaign = struct { | ||||
| 	GetListCampaignTransactionAdminInfoByIDs string | ||||
| }{ | ||||
| 	GetListCampaignTransactionAdminInfoByIDs: getCampaignValue("get_list_campaign_transaction_admin_info_by_ids"), | ||||
| } | ||||
|  | @ -14,6 +14,7 @@ var prefixes = struct { | |||
| 	SocialPost    string | ||||
| 	Staff         string | ||||
| 	Segment       string | ||||
| 	Campaign      string | ||||
| }{ | ||||
| 	Communication: "communication", | ||||
| 	Order:         "order", | ||||
|  | @ -28,4 +29,5 @@ var prefixes = struct { | |||
| 	SocialPost:    "social_post", | ||||
| 	Staff:         "staff", | ||||
| 	Segment:       "segment", | ||||
| 	Campaign:      "campaign", | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue