simplify mako impl
This commit is contained in:
parent
269cc8e53f
commit
36dd259822
1 changed files with 46 additions and 26 deletions
|
@ -31,24 +31,55 @@ type MakoNotificationData struct {
|
||||||
Data string `json:"data"`
|
Data string `json:"data"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// type Notifcation
|
type History struct {
|
||||||
|
Notifications []Notifcation
|
||||||
|
}
|
||||||
|
|
||||||
// type History struct {
|
type Notifcation struct {
|
||||||
// notifications []Notifcation
|
AppName string
|
||||||
// }
|
Summary string
|
||||||
|
Body string
|
||||||
|
}
|
||||||
|
|
||||||
func getHistory() MakoHistory {
|
func (mn MakoNotification) toNotification() Notifcation {
|
||||||
var history MakoHistory
|
var n Notifcation
|
||||||
|
n.AppName = mn.AppName.Data
|
||||||
|
n.Summary = mn.Summary.Data
|
||||||
|
n.Body = mn.Body.Data
|
||||||
|
return n
|
||||||
|
}
|
||||||
|
|
||||||
|
func (mh MakoHistory) toHistory() History {
|
||||||
|
var h History
|
||||||
|
var notifications []Notifcation
|
||||||
|
for _, mn := range mh.Data[0] {
|
||||||
|
notifications = append(notifications, mn.toNotification())
|
||||||
|
}
|
||||||
|
h.Notifications = notifications
|
||||||
|
return h
|
||||||
|
}
|
||||||
|
|
||||||
|
func getHistory() History {
|
||||||
|
var makoHistory MakoHistory
|
||||||
makoOutput, err := exec.Command("makoctl", "history").CombinedOutput()
|
makoOutput, err := exec.Command("makoctl", "history").CombinedOutput()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
json.Unmarshal(makoOutput, &history)
|
json.Unmarshal(makoOutput, &makoHistory)
|
||||||
return history
|
return makoHistory.toHistory()
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: replace with simple Render function
|
func ListNotifications(number int) {
|
||||||
func displayNotification(n MakoNotification) {
|
history := getHistory()
|
||||||
|
for i, n := range history.Notifications {
|
||||||
|
if i > number-1 {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
n.Render()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (n Notifcation) Render() {
|
||||||
appStyle := lipgloss.NewStyle().
|
appStyle := lipgloss.NewStyle().
|
||||||
Bold(true).
|
Bold(true).
|
||||||
Foreground(lipgloss.Color("3")).
|
Foreground(lipgloss.Color("3")).
|
||||||
|
@ -57,26 +88,15 @@ func displayNotification(n MakoNotification) {
|
||||||
BorderStyle(lipgloss.ThickBorder()).
|
BorderStyle(lipgloss.ThickBorder()).
|
||||||
BorderLeft(true)
|
BorderLeft(true)
|
||||||
|
|
||||||
fmt.Println(appStyle.Render(n.AppName.Data))
|
fmt.Println(appStyle.Render(n.AppName))
|
||||||
if len(n.Summary.Data) > 0 {
|
if len(n.Summary) > 0 {
|
||||||
fmt.Println(textStyle.
|
fmt.Println(textStyle.
|
||||||
BorderForeground(lipgloss.Color("14")).
|
BorderForeground(lipgloss.Color("14")).
|
||||||
Render(n.Summary.Data))
|
Render(n.Summary))
|
||||||
}
|
}
|
||||||
if len(n.Body.Data) > 0 {
|
if len(n.Body) > 0 {
|
||||||
fmt.Println(textStyle.
|
fmt.Println(textStyle.
|
||||||
BorderForeground(lipgloss.Color("2")).
|
BorderForeground(lipgloss.Color("2")).
|
||||||
Render(n.Body.Data))
|
Render(n.Body))
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
func ListNotifications(number int) {
|
|
||||||
history := getHistory()
|
|
||||||
for i, notification := range history.Data[0] {
|
|
||||||
displayNotification(notification)
|
|
||||||
if i > number-1 {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue