mirror of
https://github.com/portainer/portainer.git
synced 2025-07-25 00:09:40 +02:00
feat(motd): add the ability to use custom style (#2918)
* feat(motd): rework motd display mechanism for more flexibility on motd content * feat(api): enhance MOTD * refactor(api): refactor MOTD related codebase * feat(motd): hash on message
This commit is contained in:
parent
1d9166216a
commit
50f547a6e7
6 changed files with 68 additions and 16 deletions
|
@ -1,7 +1,9 @@
|
|||
package motd
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
"github.com/portainer/libhttp/response"
|
||||
"github.com/portainer/portainer/api"
|
||||
|
@ -10,25 +12,44 @@ import (
|
|||
)
|
||||
|
||||
type motdResponse struct {
|
||||
Title string `json:"Title"`
|
||||
Message string `json:"Message"`
|
||||
Hash []byte `json:"Hash"`
|
||||
Title string `json:"Title"`
|
||||
Message string `json:"Message"`
|
||||
ContentLayout map[string]string `json:"ContentLayout"`
|
||||
Style string `json:"Style"`
|
||||
Hash []byte `json:"Hash"`
|
||||
}
|
||||
|
||||
type motdData struct {
|
||||
Title string `json:"title"`
|
||||
Message []string `json:"message"`
|
||||
ContentLayout map[string]string `json:"contentLayout"`
|
||||
Style string `json:"style"`
|
||||
}
|
||||
|
||||
func (handler *Handler) motd(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
motd, err := client.Get(portainer.MessageOfTheDayURL, 0)
|
||||
if err != nil {
|
||||
response.JSON(w, &motdResponse{Message: ""})
|
||||
return
|
||||
}
|
||||
|
||||
title, err := client.Get(portainer.MessageOfTheDayTitleURL, 0)
|
||||
var data motdData
|
||||
err = json.Unmarshal(motd, &data)
|
||||
if err != nil {
|
||||
response.JSON(w, &motdResponse{Message: ""})
|
||||
return
|
||||
}
|
||||
|
||||
hash := crypto.HashFromBytes(motd)
|
||||
response.JSON(w, &motdResponse{Title: string(title), Message: string(motd), Hash: hash})
|
||||
message := strings.Join(data.Message, "\n")
|
||||
|
||||
hash := crypto.HashFromBytes([]byte(message))
|
||||
resp := motdResponse{
|
||||
Title: data.Title,
|
||||
Message: message,
|
||||
Hash: hash,
|
||||
ContentLayout: data.ContentLayout,
|
||||
Style: data.Style,
|
||||
}
|
||||
|
||||
response.JSON(w, &resp)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue