изображения projects!
This commit is contained in:
@@ -14,17 +14,31 @@ const addPurchaseCreativesPerPage = 5
|
||||
const addPurchaseProjectsPerPage = 6
|
||||
|
||||
type AddPurchase struct {
|
||||
WorkspaceID string
|
||||
ProjectID string
|
||||
ProjectTitle string
|
||||
CreativeID string
|
||||
CreativeTitle string
|
||||
ProjectPage int
|
||||
CreativePage int
|
||||
ActivePicker string // "" | "project_list" | "creative_list"
|
||||
BackState bot.State
|
||||
lastProjects map[string]string
|
||||
lastCreatives map[string]string
|
||||
WorkspaceID string
|
||||
ProjectID string
|
||||
ProjectTitle string
|
||||
ProjectTelegramID int64
|
||||
ProjectUsername string
|
||||
ProjectStatus string
|
||||
CreativeID string
|
||||
CreativeTitle string
|
||||
ProjectPage int
|
||||
CreativePage int
|
||||
ActivePicker string // "" | "project_list" | "creative_list"
|
||||
BackState bot.State
|
||||
lastProjects map[string]projectInfo
|
||||
lastCreatives map[string]creativeInfo
|
||||
}
|
||||
|
||||
type projectInfo struct {
|
||||
Title string
|
||||
TelegramID int64
|
||||
Username string
|
||||
Status string
|
||||
}
|
||||
|
||||
type creativeInfo struct {
|
||||
Title string
|
||||
}
|
||||
|
||||
func (s *AddPurchase) Enter(b *bot.Bot, mode bot.RenderMode) {
|
||||
@@ -78,9 +92,18 @@ func (s *AddPurchase) renderSelection(b *bot.Bot, mode bot.RenderMode, jwt strin
|
||||
return
|
||||
}
|
||||
|
||||
s.lastProjects = make(map[string]string)
|
||||
s.lastProjects = make(map[string]projectInfo)
|
||||
for _, project := range page.Items {
|
||||
s.lastProjects[project.ID] = project.Title
|
||||
username := ""
|
||||
if project.Username != nil {
|
||||
username = *project.Username
|
||||
}
|
||||
s.lastProjects[project.ID] = projectInfo{
|
||||
Title: project.Title,
|
||||
TelegramID: project.TelegramID,
|
||||
Username: username,
|
||||
Status: project.Status,
|
||||
}
|
||||
}
|
||||
|
||||
if len(page.Items) == 0 {
|
||||
@@ -143,9 +166,11 @@ func (s *AddPurchase) renderSelection(b *bot.Bot, mode bot.RenderMode, jwt strin
|
||||
return
|
||||
}
|
||||
|
||||
s.lastCreatives = make(map[string]string)
|
||||
s.lastCreatives = make(map[string]creativeInfo)
|
||||
for _, creative := range page.Items {
|
||||
s.lastCreatives[creative.ID] = creative.Name
|
||||
s.lastCreatives[creative.ID] = creativeInfo{
|
||||
Title: creative.Name,
|
||||
}
|
||||
}
|
||||
|
||||
if len(page.Items) == 0 {
|
||||
@@ -202,6 +227,11 @@ func (s *AddPurchase) renderSelection(b *bot.Bot, mode bot.RenderMode, jwt strin
|
||||
|
||||
keyboard := Keyboard(buttons...)
|
||||
b.Render(text, keyboard, mode)
|
||||
|
||||
if s.ActivePicker == "" && s.ProjectTelegramID != 0 {
|
||||
messageID := b.LastMessageID
|
||||
updateProjectHeaderMedia(b, messageID, text, keyboard, s.ProjectTelegramID, s.ProjectTitle, s.ProjectUsername, s.ProjectStatus)
|
||||
}
|
||||
}
|
||||
|
||||
func (s *AddPurchase) HandleCallback(b *bot.Bot, u *echotron.Update) {
|
||||
@@ -258,13 +288,16 @@ func (s *AddPurchase) HandleCallback(b *bot.Bot, u *echotron.Update) {
|
||||
}
|
||||
if s.ProjectID != "" && s.CreativeID != "" {
|
||||
b.SetState(&SelectChannelsForPurchase{
|
||||
WorkspaceID: s.WorkspaceID,
|
||||
ProjectID: s.ProjectID,
|
||||
ProjectTitle: s.ProjectTitle,
|
||||
CreativeID: s.CreativeID,
|
||||
CreativeTitle: s.CreativeTitle,
|
||||
Channels: []PurchaseChannelInput{},
|
||||
BackState: s.BackState,
|
||||
WorkspaceID: s.WorkspaceID,
|
||||
ProjectID: s.ProjectID,
|
||||
ProjectTitle: s.ProjectTitle,
|
||||
ProjectTelegramID: s.ProjectTelegramID,
|
||||
ProjectUsername: s.ProjectUsername,
|
||||
ProjectStatus: s.ProjectStatus,
|
||||
CreativeID: s.CreativeID,
|
||||
CreativeTitle: s.CreativeTitle,
|
||||
Channels: []PurchaseChannelInput{},
|
||||
BackState: s.BackState,
|
||||
}, bot.EditMessage)
|
||||
}
|
||||
|
||||
@@ -272,7 +305,12 @@ func (s *AddPurchase) HandleCallback(b *bot.Bot, u *echotron.Update) {
|
||||
if len(data) > 8 && data[:8] == "project:" {
|
||||
projectID := data[8:]
|
||||
if s.lastProjects != nil {
|
||||
s.ProjectTitle = s.lastProjects[projectID]
|
||||
if info, ok := s.lastProjects[projectID]; ok {
|
||||
s.ProjectTitle = info.Title
|
||||
s.ProjectTelegramID = info.TelegramID
|
||||
s.ProjectUsername = info.Username
|
||||
s.ProjectStatus = info.Status
|
||||
}
|
||||
}
|
||||
s.ProjectID = projectID
|
||||
s.CreativeID = ""
|
||||
@@ -285,7 +323,9 @@ func (s *AddPurchase) HandleCallback(b *bot.Bot, u *echotron.Update) {
|
||||
if len(data) > 9 && data[:9] == "creative:" {
|
||||
creativeID := data[9:]
|
||||
if s.lastCreatives != nil {
|
||||
s.CreativeTitle = s.lastCreatives[creativeID]
|
||||
if info, ok := s.lastCreatives[creativeID]; ok {
|
||||
s.CreativeTitle = info.Title
|
||||
}
|
||||
}
|
||||
s.CreativeID = creativeID
|
||||
s.ActivePicker = ""
|
||||
|
||||
Reference in New Issue
Block a user