diff options
Diffstat (limited to 'walrss/internal')
| -rw-r--r-- | walrss/internal/http/http.go | 2 | ||||
| -rw-r--r-- | walrss/internal/http/testEmail.go | 30 | ||||
| -rw-r--r-- | walrss/internal/http/views/main.qtpl.html | 2 | ||||
| -rw-r--r-- | walrss/internal/http/views/main.qtpl.html.go | 4 | ||||
| -rw-r--r-- | walrss/internal/http/views/page.qtpl.html | 4 | ||||
| -rw-r--r-- | walrss/internal/http/views/page.qtpl.html.go | 15 | ||||
| -rw-r--r-- | walrss/internal/urls/urls.go | 2 |
7 files changed, 44 insertions, 15 deletions
diff --git a/walrss/internal/http/http.go b/walrss/internal/http/http.go index 67be3c2..72a8634 100644 --- a/walrss/internal/http/http.go +++ b/walrss/internal/http/http.go @@ -89,6 +89,8 @@ func (s *Server) registerHandlers() { s.app.Get(urls.NewFeedItem, s.newFeedItem) s.app.Post(urls.NewFeedItem, s.newFeedItem) + s.app.Post(urls.SendTestEmail, s.sendTestEmail) + s.app.Use(urls.Statics, static.NewHandler()) } diff --git a/walrss/internal/http/testEmail.go b/walrss/internal/http/testEmail.go new file mode 100644 index 0000000..1aab514 --- /dev/null +++ b/walrss/internal/http/testEmail.go @@ -0,0 +1,30 @@ +package http + +import ( + "github.com/codemicro/walrss/walrss/internal/core" + "github.com/codemicro/walrss/walrss/internal/rss" + "github.com/codemicro/walrss/walrss/internal/urls" + "github.com/gofiber/fiber/v2" + "github.com/rs/zerolog/log" +) + +func (s *Server) sendTestEmail(ctx *fiber.Ctx) error { + currentUserID := getCurrentUserID(ctx) + if currentUserID == "" { + return requestFragmentSignIn(ctx, urls.Index) + } + + user, err := core.GetUserByID(s.state, currentUserID) + if err != nil { + return err + } + + go func() { + if err := rss.ProcessUserFeed(s.state, user); err != nil { + log.Error().Err(err).Str("location", "test email").Str("user", user.ID).Send() + } + }() + + fragmentEmitSuccess(ctx) + return nil +} diff --git a/walrss/internal/http/views/main.qtpl.html b/walrss/internal/http/views/main.qtpl.html index c9ab30f..47e1d54 100644 --- a/walrss/internal/http/views/main.qtpl.html +++ b/walrss/internal/http/views/main.qtpl.html @@ -282,7 +282,7 @@ </div> </form> - <button hx-post="{%s= urls.TestEmail %}">Send test email</button> + <button class="mt-2 btn btn-primary btn-sm" hx-post="{%s= urls.SendTestEmail %}" hx-swap="none">Send test email</button> </div> </div> diff --git a/walrss/internal/http/views/main.qtpl.html.go b/walrss/internal/http/views/main.qtpl.html.go index 83ddd03..9ff4393 100644 --- a/walrss/internal/http/views/main.qtpl.html.go +++ b/walrss/internal/http/views/main.qtpl.html.go @@ -497,6 +497,10 @@ func (p *MainPage) StreamRenderScheduleCard(qw422016 *qt422016.Writer) { </div> </form> + <button class="mt-2 btn btn-primary btn-sm" hx-post="`) + qw422016.N().S(urls.SendTestEmail) + qw422016.N().S(`" hx-swap="none">Send test email</button> + </div> </div> `) diff --git a/walrss/internal/http/views/page.qtpl.html b/walrss/internal/http/views/page.qtpl.html index 2f35937..dd993f2 100644 --- a/walrss/internal/http/views/page.qtpl.html +++ b/walrss/internal/http/views/page.qtpl.html @@ -1,5 +1,3 @@ -{% import "github.com/codemicro/walrss/walrss/internal/urls" %} - {% interface Page { Title() @@ -71,7 +69,7 @@ Page prints a page implementing Page interface. PolyPage is used to create a basic page dynamically using Daz. {% code type PolyPage struct { - BasePageuuu + BasePage TitleString string BodyContent string ExtraHeadContent string diff --git a/walrss/internal/http/views/page.qtpl.html.go b/walrss/internal/http/views/page.qtpl.html.go index 926ee88..2c9a6ca 100644 --- a/walrss/internal/http/views/page.qtpl.html.go +++ b/walrss/internal/http/views/page.qtpl.html.go @@ -3,8 +3,6 @@ package views -import "github.com/codemicro/walrss/walrss/internal/urls" - import ( qtio422016 "io" @@ -39,16 +37,11 @@ func StreamRenderPage(qw422016 *qt422016.Writer, p Page) { qw422016.N().S(makePageTitle(p)) qw422016.N().S(`</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <script src="`) - qw422016.N().S(urls.Statics) - qw422016.N().S(`/htmx.min.js"></script> - <link href="`) - qw422016.N().S(urls.Statics) - qw422016.N().S(`/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous"> + <script src="https://unpkg.com/htmx.org@1.7.0"></script> + <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.8.1/font/bootstrap-icons.css"> - <script src="`) - qw422016.N().S(urls.Statics) - qw422016.N().S(`/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script> + <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script> + <style> [disabled] { cursor: not-allowed; diff --git a/walrss/internal/urls/urls.go b/walrss/internal/urls/urls.go index 87fb45c..2edcc2e 100644 --- a/walrss/internal/urls/urls.go +++ b/walrss/internal/urls/urls.go @@ -21,6 +21,8 @@ const ( New = "/new" NewFeedItem = New + "/feed" + SendTestEmail = "/send/test" + Statics = "/statics" ) |
