-
Notifications
You must be signed in to change notification settings - Fork 43
/
app_list.go
113 lines (106 loc) · 3.65 KB
/
app_list.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
package appmanagement
import (
"strconv"
"github.com/bububa/oceanengine/marketing-api/model"
"github.com/bububa/oceanengine/marketing-api/util"
)
// AppListRequest 查询应用信息 API Request
type AppListRequest struct {
// AdvertiserID 广告主ID
AdvertiserID uint64 `json:"advertiser_id,omitempty"`
// SearchKey 搜索关键字
// appid或者应用名,可以为空,可以传中文
// 长度不超过50
SearchKey string `json:"search_key,omitempty"`
// SearchType 搜索类型:
// ALL:查询全部,包括创建和被共享的应用(默认)
// CREATE_ONLY:只查询广告主创建的应用
// SHARED_ONLY:只查询被共享的应用
SearchType AppSearchType `json:"search_type,omitempty"`
// Status 应用状态:
// ALL:所有状态
// AUDIT_DOING:审核中
// AUDIT_REJECTED:审核失败
// BOOKING:预约中
// ENABLE:已发布(默认)
// PAST_DUE:已逾期
Status AppStatus `json:"status,omitempty"`
// Page 页码,默认值为1
Page int `json:"page,omitempty"`
// PageSize 页面大小,默认值为10,最大不超过200
PageSize int `json:"page_size,omitempty"`
// CreateTime 按创建时间查询的时间范围
CreateTime *TimeRange `json:"create_time,omitempty"`
// PublishTime 按发布时间查询的时间范围
PublishTime *TimeRange `json:"publish_time,omitempty"`
// ScheduledPublishTime 按预约发布时间查询的时间范围
ScheduledPublishTime *TimeRange `json:"scheduled_publish_time,omitempty"`
}
// Encode implement GetRequest interface
func (r AppListRequest) Encode() string {
values := util.GetUrlValues()
values.Set("advertiser_id", strconv.FormatUint(r.AdvertiserID, 10))
if r.SearchKey != "" {
values.Set("search_key", r.SearchKey)
}
if r.SearchType != "" {
values.Set("search_type", string(r.SearchType))
}
if r.Status != "" {
values.Set("status", string(r.Status))
}
if r.CreateTime != nil {
values.Set("create_time", string(util.JSONMarshal(r.CreateTime)))
}
if r.PublishTime != nil {
values.Set("publish_time", string(util.JSONMarshal(r.PublishTime)))
}
if r.ScheduledPublishTime != nil {
values.Set("scheduled_publish_time", string(util.JSONMarshal(r.ScheduledPublishTime)))
}
if r.Page != 1 {
values.Set("page", strconv.Itoa(r.Page))
}
if r.PageSize > 0 {
values.Set("page_size", strconv.Itoa(r.PageSize))
}
ret := values.Encode()
util.PutUrlValues(values)
return ret
}
// AppListResponse 查询APP信息 API Response
type AppListResponse struct {
model.BaseResponse
Data *AppListResponseData `json:"data,omitempty"`
}
type AppListResponseData struct {
// List 应用列表
List []App `json:"list,omitempty"`
// PageInfo 分页信息
PageInfo *model.PageInfo `json:"page_info,omitempty"`
}
// App 应用信息
type App struct {
// PackageID 应用包ID
PackageID string `json:"package_id,omitempty"`
// PackageName 包名
PackageName string `json:"package_name,omitempty"`
// AppCloudID app id
AppCloudID uint64 `json:"app_cloud_id,omitempty"`
// AppName 应用名
AppName string `json:"app_name,omitempty"`
// Version 版本号
Version string `json:"version,omitempty"`
// DownloadURL 下载地址
DownloadURL string `json:"download_url,omitempty"`
// IconURL icon地址
IconURL string `json:"icon_url,omitempty"`
// PublishTime 发布时间,格式:%Y-%m-%d %H:%M:%S
PublishTime string `json:"publish_time,omitempty"`
// ScheduledPublishTime 预约发布时间,格式:%Y-%m-%d %H:%M:%S
ScheduledPublishTime string `json:"scheduled_publish_time,omitempty"`
// UpdateTime 更新时间,格式:%Y-%m-%d %H:%M:%S
UpdateTime string `json:"update_time,omitempty"`
// CreateTime 创建时间,格式:%Y-%m-%d %H:%M:%S
CreateTime string `json:"create_time,omitempty"`
}