aboutsummaryrefslogtreecommitdiffstats
path: root/walrss/internal
diff options
context:
space:
mode:
Diffstat (limited to 'walrss/internal')
-rw-r--r--walrss/internal/http/http.go2
-rw-r--r--walrss/internal/http/testEmail.go30
-rw-r--r--walrss/internal/http/views/main.qtpl.html2
-rw-r--r--walrss/internal/http/views/main.qtpl.html.go4
-rw-r--r--walrss/internal/http/views/page.qtpl.html4
-rw-r--r--walrss/internal/http/views/page.qtpl.html.go15
-rw-r--r--walrss/internal/urls/urls.go2
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"
)