define nats product

This commit is contained in:
Sinh 2022-12-26 14:08:14 +07:00
parent 46539db236
commit b19fea04c8
4 changed files with 56 additions and 0 deletions

35
client/product.go Normal file
View File

@ -0,0 +1,35 @@
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"
)
// Product ...
type Product struct{}
// GetProduct ...
func GetProduct() Product {
return Product{}
}
func (c Product) ApplyRequest(p model.ProductApplyRequestPayload) error {
msg, err := natsio.GetServer().Request(subject.Product.ApplyRequest, toBytes(p))
if err != nil {
return err
}
var r struct {
Error string `json:"error"`
}
if err = json.Unmarshal(msg.Data, &r); err != nil {
return err
}
if r.Error != "" {
return errors.New(r.Error)
}
return nil
}

5
model/product_request.go Normal file
View File

@ -0,0 +1,5 @@
package model
type ProductApplyRequestPayload struct {
RequestID string `json:"requestId"`
}

View File

@ -14,6 +14,7 @@ var prefixes = struct {
SocialPost string
Staff string
Segment string
Product string
Campaign string
Affiliate string
}{
@ -30,6 +31,7 @@ var prefixes = struct {
SocialPost: "social_post",
Staff: "staff",
Segment: "segment",
Product: "product",
Campaign: "campaign",
Affiliate: "affiliate",
}

14
subject/product.go Normal file
View File

@ -0,0 +1,14 @@
package subject
import "fmt"
// getSegmentValue ...
func getProductValue(val string) string {
return fmt.Sprintf("%s.%s", prefixes.Product, val)
}
var Product = struct {
ApplyRequest string
}{
ApplyRequest: getProductValue("apply_request"),
}