package subsonic import ( "time" "git.noroutes.net/NoRoutes/vibetunes/internal/database" ) func init() { register("getChatMessages", handleGetChatMessages) register("addChatMessage", handleAddChatMessage) } func handleGetChatMessages(rc *Context) *apiError { since := time.Time{} if ms := rc.Params.Int64("since", 0); ms > 0 { since = time.UnixMilli(ms) } messages, err := database.ListChatMessagesSince(rc.Server.DB, since) if err != nil { return newError(ErrGeneric, err.Error()) } out := &ChatMessages{} for _, m := range messages { out.ChatMessage = append(out.ChatMessage, ChatMessage{ Username: m.Username, Time: m.CreatedAt.UnixMilli(), Message: m.Message, }) } rc.Response = newResponse() rc.Response.ChatMessages = out return nil } func handleAddChatMessage(rc *Context) *apiError { message, aerr := rc.Params.Required("message") if aerr != nil { return aerr } if err := database.AddChatMessage(rc.Server.DB, rc.User.ID, message); err != nil { return newError(ErrGeneric, err.Error()) } rc.Response = newResponse() return nil }