feature/campaign #76
|
@ -0,0 +1,65 @@
|
||||||
|
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"
|
||||||
|
)
|
||||||
|
|
||||||
|
// SocialPost ...
|
||||||
|
type SocialPost struct{}
|
||||||
|
|
||||||
|
// GetSocialPost ...
|
||||||
|
func GetSocialPost() SocialPost {
|
||||||
|
return SocialPost{}
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetListSocialPostAppInfoByIDs ...
|
||||||
|
func (s SocialPost) GetListSocialPostAppInfoByIDs(p model.GetListSocialPostAppByIDsRequest) (*model.ResponseListSocialPostAppInfo, error) {
|
||||||
|
msg, err := natsio.GetServer().Request(subject.SocialPost.GetListSocialPostAppInfoByIDs, toBytes(p))
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var r struct {
|
||||||
|
Data *model.ResponseListSocialPostAppInfo `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
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetBriefDetailSocialPostAdminByIDsRequest ...
|
||||||
|
func (s SocialPost) GetBriefDetailSocialPostAdminByIDsRequest(p model.GetBriefInfoSocialPostAdminByIDsRequest) (*model.ResponseListSocialPostAdminInfo, error) {
|
||||||
|
msg, err := natsio.GetServer().Request(subject.SocialPost.GetBriefInfoSocialPostAdminByIDs, toBytes(p))
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var r struct {
|
||||||
|
Data *model.ResponseListSocialPostAdminInfo `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
|
||||||
|
}
|
|
@ -0,0 +1,41 @@
|
||||||
|
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"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Staff ...
|
||||||
|
type Staff struct{}
|
||||||
|
|
||||||
|
func GetStaff() Staff {
|
||||||
|
return Staff{}
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetListStaffInfoByIds ...
|
||||||
|
func (s Staff) GetListStaffInfoByIds(p model.GetListStaffRequest) (*model.ResponseListStaffInfo, error) {
|
||||||
|
msg, err := natsio.GetServer().Request(subject.Staff.GetListStaffInfo, toBytes(p))
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var r struct {
|
||||||
|
Data *model.ResponseListStaffInfo `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
|
||||||
|
|
||||||
|
}
|
|
@ -14,6 +14,7 @@ type PushNotification struct {
|
||||||
type NotificationOptions struct {
|
type NotificationOptions struct {
|
||||||
Title string `json:"title"`
|
Title string `json:"title"`
|
||||||
Content string `json:"content"`
|
Content string `json:"content"`
|
||||||
|
CampaignID string `json:"campaignId,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// PayloadUpdateSellerAffiliateStatistic ...
|
// PayloadUpdateSellerAffiliateStatistic ...
|
||||||
|
|
|
@ -0,0 +1,56 @@
|
||||||
|
package model
|
||||||
|
|
||||||
|
import "go.mongodb.org/mongo-driver/bson/primitive"
|
||||||
|
|
||||||
|
// FilePhoto ...
|
||||||
|
type FilePhoto struct {
|
||||||
|
ID string `json:"_id"`
|
||||||
|
Name string `json:"name,omitempty"`
|
||||||
|
Dimensions *FileDimensions `json:"dimensions"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// FileSize ...
|
||||||
|
type FileSize struct {
|
||||||
|
Width int `json:"width"`
|
||||||
|
Height int `json:"height"`
|
||||||
|
URL string `json:"url"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// FileDimensions ...
|
||||||
|
type FileDimensions struct {
|
||||||
|
Small *FileSize `json:"sm"`
|
||||||
|
Medium *FileSize `json:"md"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// ListPhoto ...
|
||||||
|
type ListPhoto []*FilePhoto
|
||||||
|
|
||||||
|
// Video ...
|
||||||
|
type Video struct {
|
||||||
|
ID primitive.ObjectID `json:"_id"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
Dimensions *FileVideoDimensions `json:"dimensions"`
|
||||||
|
VideoExtension string `json:"ext"`
|
||||||
|
Thumbnail *FilePhoto `json:"thumbnail"`
|
||||||
|
Status string `json:"status"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// FileVideoDimensions ...
|
||||||
|
type FileVideoDimensions struct {
|
||||||
|
Dimension480p *FileVideoSize `json:"size480p"`
|
||||||
|
Dimension720p *FileVideoSize `json:"size720p"`
|
||||||
|
Dimension1080p *FileVideoSize `json:"size1080p"`
|
||||||
|
DimensionOriginal *FileVideoSize `json:"original"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// FileVideoSize ...
|
||||||
|
type FileVideoSize struct {
|
||||||
|
Name string `json:"name"`
|
||||||
|
Width int `json:"width"`
|
||||||
|
Height int `json:"height"`
|
||||||
|
Size string `json:"size"`
|
||||||
|
URL string `json:"url"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// ListVideo ...
|
||||||
|
type ListVideo []Video
|
|
@ -0,0 +1,13 @@
|
||||||
|
package model
|
||||||
|
|
||||||
|
import "go.mongodb.org/mongo-driver/bson/primitive"
|
||||||
|
|
||||||
|
// GetListSocialPostAppByIDsRequest ...
|
||||||
|
type GetListSocialPostAppByIDsRequest struct {
|
||||||
|
SocialPostIDs []primitive.ObjectID `json:"socialPostIDs"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetBriefInfoSocialPostAdminByIDsRequest ...
|
||||||
|
type GetBriefInfoSocialPostAdminByIDsRequest struct {
|
||||||
|
SocialPostIDs []primitive.ObjectID `json:"socialPostIDs"`
|
||||||
|
}
|
|
@ -0,0 +1,61 @@
|
||||||
|
package model
|
||||||
|
|
||||||
|
import (
|
||||||
|
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// ResponseListSocialPostAppInfo ...
|
||||||
|
type ResponseListSocialPostAppInfo struct {
|
||||||
|
SocialPosts []SocialPostAppInfo `json:"socialPosts"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// SocialPostAppInfo ...
|
||||||
|
type SocialPostAppInfo struct {
|
||||||
|
ID primitive.ObjectID `json:"_id"`
|
||||||
|
Title string `json:"title"`
|
||||||
|
Content string `json:"content"`
|
||||||
|
Statistic SocialPostStatistic `json:"statistic"`
|
||||||
|
Author *SocialPostSellerInfo `json:"author"`
|
||||||
|
Photos ListPhoto `json:"photos"`
|
||||||
|
PublishedAt time.Time `json:"publishedAt"`
|
||||||
|
IsLiked bool `json:"isLiked"`
|
||||||
|
IsPin bool `json:"isPin"`
|
||||||
|
Contributor *SocialPostSellerInfo `json:"contributor"`
|
||||||
|
CreatedAt time.Time `json:"createdAt"`
|
||||||
|
Status string `json:"status"`
|
||||||
|
HasUpdate bool `json:"hasUpdate"`
|
||||||
|
Order int `json:"order"`
|
||||||
|
Videos ListVideo `json:"videos"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// SocialPostStatistic ...
|
||||||
|
type SocialPostStatistic struct {
|
||||||
|
Views int `json:"views"`
|
||||||
|
UniqueViews int `json:"uniqueViews"`
|
||||||
|
Likes int `json:"likes"`
|
||||||
|
Shares int `json:"shares"`
|
||||||
|
UniqueShares int `json:"uniqueShares"`
|
||||||
|
Comments int `json:"comments"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// SocialPostSellerInfo ...
|
||||||
|
type SocialPostSellerInfo struct {
|
||||||
|
ID primitive.ObjectID `json:"_id"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
Membership SellerMembershipInfo `json:"membership"`
|
||||||
|
Logo *FilePhoto `json:"logo"`
|
||||||
|
IsMine bool `json:"isMine"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// ResponseListSocialPostAdminInfo ...
|
||||||
|
type ResponseListSocialPostAdminInfo struct {
|
||||||
|
SocialPosts []SocialPostAdminInfo `json:"socialPosts"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// SocialPostAdminInfo ...
|
||||||
|
type SocialPostAdminInfo struct {
|
||||||
|
ID primitive.ObjectID `json:"_id"`
|
||||||
|
Title string `json:"title"`
|
||||||
|
Status string `json:"status"`
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
package model
|
||||||
|
|
||||||
|
// GetListStaffRequest ...
|
||||||
|
type GetListStaffRequest struct {
|
||||||
|
StaffIds []string `json:"staffIds"`
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
package model
|
||||||
|
|
||||||
|
// ResponseListStaffInfo ...
|
||||||
|
type ResponseListStaffInfo struct {
|
||||||
|
Staffs []ResponseStaffInfo `json:"staffs"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// ResponseStaffInfo ...
|
||||||
|
type ResponseStaffInfo struct {
|
||||||
|
ID string `json:"_id"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
}
|
|
@ -11,6 +11,8 @@ var prefixes = struct {
|
||||||
Seller string
|
Seller string
|
||||||
SupplierUser string
|
SupplierUser string
|
||||||
SupplierRole string
|
SupplierRole string
|
||||||
|
SocialPost string
|
||||||
|
Staff string
|
||||||
}{
|
}{
|
||||||
Communication: "communication",
|
Communication: "communication",
|
||||||
Order: "order",
|
Order: "order",
|
||||||
|
@ -22,4 +24,6 @@ var prefixes = struct {
|
||||||
Seller: "seller",
|
Seller: "seller",
|
||||||
SupplierUser: "supplier_user",
|
SupplierUser: "supplier_user",
|
||||||
SupplierRole: "supplier_role",
|
SupplierRole: "supplier_role",
|
||||||
|
SocialPost: "social_post",
|
||||||
|
Staff: "staff",
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
package subject
|
||||||
|
|
||||||
|
import "fmt"
|
||||||
|
|
||||||
|
// getSocialPostValue ...
|
||||||
|
func getSocialPostValue(val string) string {
|
||||||
|
return fmt.Sprintf("%s.%s", prefixes.SocialPost, val)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SocialPost ...
|
||||||
|
var SocialPost = struct {
|
||||||
|
GetListSocialPostAppInfoByIDs string
|
||||||
|
GetBriefInfoSocialPostAdminByIDs string
|
||||||
|
}{
|
||||||
|
GetListSocialPostAppInfoByIDs: getSocialPostValue("get_list_social_post_app_info_by_ids"),
|
||||||
|
GetBriefInfoSocialPostAdminByIDs: getSocialPostValue("get_brief_info_social_post_admin_by_ids"),
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
package subject
|
||||||
|
|
||||||
|
import "fmt"
|
||||||
|
|
||||||
|
func getStaffValue(val string) string {
|
||||||
|
return fmt.Sprintf("%s.%s", prefixes.Staff, val)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Staff ...
|
||||||
|
var Staff = struct {
|
||||||
|
GetListStaffInfo string
|
||||||
|
}{
|
||||||
|
GetListStaffInfo: getStaffValue("get_list_staff_info"),
|
||||||
|
}
|
Loading…
Reference in New Issue