package handlers // This file is auto-generated. // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // // Definitions file that controls how this file is generated: // import ( "context" "github.com/cortezaproject/corteza/server/pkg/api" "github.com/cortezaproject/corteza/server/system/rest/request" "github.com/go-chi/chi/v5" "net/http" ) type ( // Internal API interface NotificationAPI interface { List(context.Context, *request.NotificationList) (interface{}, error) Create(context.Context, *request.NotificationCreate) (interface{}, error) Update(context.Context, *request.NotificationUpdate) (interface{}, error) Read(context.Context, *request.NotificationRead) (interface{}, error) Delete(context.Context, *request.NotificationDelete) (interface{}, error) MarkAsRead(context.Context, *request.NotificationMarkAsRead) (interface{}, error) MarkAsUnread(context.Context, *request.NotificationMarkAsUnread) (interface{}, error) MarkAllAsRead(context.Context, *request.NotificationMarkAllAsRead) (interface{}, error) MarkAllAsUnread(context.Context, *request.NotificationMarkAllAsUnread) (interface{}, error) } // HTTP API interface Notification struct { List func(http.ResponseWriter, *http.Request) Create func(http.ResponseWriter, *http.Request) Update func(http.ResponseWriter, *http.Request) Read func(http.ResponseWriter, *http.Request) Delete func(http.ResponseWriter, *http.Request) MarkAsRead func(http.ResponseWriter, *http.Request) MarkAsUnread func(http.ResponseWriter, *http.Request) MarkAllAsRead func(http.ResponseWriter, *http.Request) MarkAllAsUnread func(http.ResponseWriter, *http.Request) } ) func NewNotification(h NotificationAPI) *Notification { return &Notification{ List: func(w http.ResponseWriter, r *http.Request) { defer r.Body.Close() params := request.NewNotificationList() if err := params.Fill(r); err != nil { api.Send(w, r, err) return } value, err := h.List(r.Context(), params) if err != nil { api.Send(w, r, err) return } api.Send(w, r, value) }, Create: func(w http.ResponseWriter, r *http.Request) { defer r.Body.Close() params := request.NewNotificationCreate() if err := params.Fill(r); err != nil { api.Send(w, r, err) return } value, err := h.Create(r.Context(), params) if err != nil { api.Send(w, r, err) return } api.Send(w, r, value) }, Update: func(w http.ResponseWriter, r *http.Request) { defer r.Body.Close() params := request.NewNotificationUpdate() if err := params.Fill(r); err != nil { api.Send(w, r, err) return } value, err := h.Update(r.Context(), params) if err != nil { api.Send(w, r, err) return } api.Send(w, r, value) }, Read: func(w http.ResponseWriter, r *http.Request) { defer r.Body.Close() params := request.NewNotificationRead() if err := params.Fill(r); err != nil { api.Send(w, r, err) return } value, err := h.Read(r.Context(), params) if err != nil { api.Send(w, r, err) return } api.Send(w, r, value) }, Delete: func(w http.ResponseWriter, r *http.Request) { defer r.Body.Close() params := request.NewNotificationDelete() if err := params.Fill(r); err != nil { api.Send(w, r, err) return } value, err := h.Delete(r.Context(), params) if err != nil { api.Send(w, r, err) return } api.Send(w, r, value) }, MarkAsRead: func(w http.ResponseWriter, r *http.Request) { defer r.Body.Close() params := request.NewNotificationMarkAsRead() if err := params.Fill(r); err != nil { api.Send(w, r, err) return } value, err := h.MarkAsRead(r.Context(), params) if err != nil { api.Send(w, r, err) return } api.Send(w, r, value) }, MarkAsUnread: func(w http.ResponseWriter, r *http.Request) { defer r.Body.Close() params := request.NewNotificationMarkAsUnread() if err := params.Fill(r); err != nil { api.Send(w, r, err) return } value, err := h.MarkAsUnread(r.Context(), params) if err != nil { api.Send(w, r, err) return } api.Send(w, r, value) }, MarkAllAsRead: func(w http.ResponseWriter, r *http.Request) { defer r.Body.Close() params := request.NewNotificationMarkAllAsRead() if err := params.Fill(r); err != nil { api.Send(w, r, err) return } value, err := h.MarkAllAsRead(r.Context(), params) if err != nil { api.Send(w, r, err) return } api.Send(w, r, value) }, MarkAllAsUnread: func(w http.ResponseWriter, r *http.Request) { defer r.Body.Close() params := request.NewNotificationMarkAllAsUnread() if err := params.Fill(r); err != nil { api.Send(w, r, err) return } value, err := h.MarkAllAsUnread(r.Context(), params) if err != nil { api.Send(w, r, err) return } api.Send(w, r, value) }, } } func (h Notification) MountRoutes(r chi.Router, middlewares ...func(http.Handler) http.Handler) { r.Group(func(r chi.Router) { r.Use(middlewares...) r.Get("/notification/", h.List) r.Post("/notification/", h.Create) r.Put("/notification/{notificationID}", h.Update) r.Get("/notification/{notificationID}", h.Read) r.Delete("/notification/{notificationID}", h.Delete) r.Patch("/notification/{notificationID}/read", h.MarkAsRead) r.Patch("/notification/{notificationID}/unread", h.MarkAsUnread) r.Patch("/notification/all/read", h.MarkAllAsRead) r.Patch("/notification/all/unread", h.MarkAllAsUnread) }) }