aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorMartin Kagamino Lehoux <martin@lehoux.net>2023-10-24 08:38:40 +0200
committerMartin Kagamino Lehoux <martin@lehoux.net>2023-10-24 08:38:40 +0200
commita9927763f43d59c418b264790ccee59defe8ca29 (patch)
tree5dfc4f1f1f29d1ef1cbca3406bf57d1667b93f76 /core
parented23d402fec268e163ec895748f43e3254ba3dfd (diff)
refactor: Rename packages for clarityv0.3.0
Diffstat (limited to 'core')
-rw-r--r--core/core.go34
-rw-r--r--core/error.go16
-rw-r--r--core/file.go38
-rw-r--r--core/http.go28
-rw-r--r--core/image.go38
-rw-r--r--core/middleware.go31
-rw-r--r--core/template.go33
7 files changed, 0 insertions, 218 deletions
diff --git a/core/core.go b/core/core.go
deleted file mode 100644
index 5cd654d..0000000
--- a/core/core.go
+++ /dev/null
@@ -1,34 +0,0 @@
-package core
-
-import (
- "encoding/base64"
-
- "github.com/gofrs/uuid"
-)
-
-type ID struct {
- uuid.UUID
-}
-
-func NewID() ID {
- id, err := uuid.NewV4()
- Expect(err, "error generating uuid")
-
- return ID{id}
-}
-
-func (id ID) String() string {
- return base64.RawURLEncoding.EncodeToString(id.Bytes())
-}
-
-func ParseID(value string) (ID, error) {
- bytes, err := base64.RawURLEncoding.DecodeString(value)
- if err != nil {
- return ID{}, Wrap(err, "error decoding value")
- }
- id, err := uuid.FromBytes(bytes)
- if err != nil {
- return ID{}, Wrap(err, "error parsing uuid")
- }
- return ID{id}, nil
-}
diff --git a/core/error.go b/core/error.go
deleted file mode 100644
index 7b1871a..0000000
--- a/core/error.go
+++ /dev/null
@@ -1,16 +0,0 @@
-package core
-
-import "fmt"
-
-func Wrap(err error, msg string) error {
- return fmt.Errorf("%s: %w", msg, err)
-}
-
-func Expect(err error, msg string) {
- if err != nil {
- if msg != "" {
- err = Wrap(err, msg)
- }
- panic(err)
- }
-}
diff --git a/core/file.go b/core/file.go
deleted file mode 100644
index 083d8f7..0000000
--- a/core/file.go
+++ /dev/null
@@ -1,38 +0,0 @@
-package core
-
-import (
- "fmt"
- "io"
- "mime/multipart"
- "os"
-)
-
-type File (string)
-
-func NewFile(ext string) File {
- return File(NewID().String() + ext)
-}
-
-func (file File) Path() string {
- return fmt.Sprintf("media/files/%s", file)
-}
-
-func (file *File) Save(raw multipart.File) error {
- dest, err := os.Create(file.Path())
- if err != nil {
- return Wrap(err, "error creating file destination")
- }
- _, err = io.Copy(dest, raw)
- if err != nil {
- return Wrap(err, "error copying to file destination")
- }
- return nil
-}
-
-func (file *File) Delete() error {
- err := os.Remove(file.Path())
- if err != nil {
- return Wrap(err, "error deleting file")
- }
- return nil
-}
diff --git a/core/http.go b/core/http.go
deleted file mode 100644
index 778c5c9..0000000
--- a/core/http.go
+++ /dev/null
@@ -1,28 +0,0 @@
-package core
-
-import (
- "bytes"
- "context"
- "html/template"
- "net/http"
-
- "github.com/a-h/templ"
-)
-
-func ExecuteTemplate(w http.ResponseWriter, tpl template.Template, name string, data interface{}) {
- var buf bytes.Buffer
- err := tpl.ExecuteTemplate(&buf, name, data)
- Expect(err, "error executing template")
- w.Header().Set("Content-Type", "text/html; charset=UTF-8")
- _, err = buf.WriteTo(w)
- Expect(err, "error writing template to response writer")
-}
-
-func RenderPage(ctx context.Context, page templ.Component, w http.ResponseWriter) {
- var buf bytes.Buffer
- err := page.Render(ctx, &buf)
- Expect(err, "error rendering page")
- w.Header().Set("Content-Type", "text/html; charset=UTF-8")
- _, err = buf.WriteTo(w)
- Expect(err, "error writing page to response writer")
-}
diff --git a/core/image.go b/core/image.go
deleted file mode 100644
index c06cbd8..0000000
--- a/core/image.go
+++ /dev/null
@@ -1,38 +0,0 @@
-package core
-
-import (
- "fmt"
- "io"
- "mime/multipart"
- "os"
-)
-
-type Image (ID)
-
-func NewImage() Image {
- return Image(NewID())
-}
-
-func (image Image) Path() string {
- return fmt.Sprintf("media/images/%s", image)
-}
-
-func (image *Image) Save(raw multipart.File) error {
- dest, err := os.Create(image.Path())
- if err != nil {
- return Wrap(err, "error creating image destination")
- }
- _, err = io.Copy(dest, raw)
- if err != nil {
- return Wrap(err, "error copying to image destination")
- }
- return nil
-}
-
-func (image *Image) Delete() error {
- err := os.Remove(image.Path())
- if err != nil {
- return Wrap(err, "error deleting image")
- }
- return nil
-}
diff --git a/core/middleware.go b/core/middleware.go
deleted file mode 100644
index 55e67fb..0000000
--- a/core/middleware.go
+++ /dev/null
@@ -1,31 +0,0 @@
-package core
-
-import (
- "errors"
- "net/http"
-
- "golang.org/x/exp/slog"
-)
-
-func RecoverMiddleware(next http.Handler) http.Handler {
- fn := func(w http.ResponseWriter, r *http.Request) {
- defer func() {
- if rcv := recover(); rcv != nil {
- switch err := rcv.(type) {
- case error:
- if errors.Is(err, http.ErrAbortHandler) {
- panic(rcv)
- }
- slog.Error(err.Error())
- http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError)
- default:
- panic(err)
- }
- }
- }()
-
- next.ServeHTTP(w, r)
- }
-
- return http.HandlerFunc(fn)
-}
diff --git a/core/template.go b/core/template.go
deleted file mode 100644
index a0d0668..0000000
--- a/core/template.go
+++ /dev/null
@@ -1,33 +0,0 @@
-package core
-
-import (
- "github.com/kataras/i18n"
-)
-
-type Tr = func(format string, args ...any) string
-
-type WithLanguage interface {
- Language() string
-}
-
-func GetTr(wl WithLanguage) Tr {
- lang := "en-GB"
- if wl != nil {
- lang = wl.Language()
- }
- return func(format string, args ...any) string { return i18n.Tr(lang, format, args...) }
-}
-
-type Login[U any] struct {
- Ok bool
- User U
- Tr Tr
-}
-
-func LoginFromUser[U WithLanguage](user U, ok bool) Login[U] {
- return Login[U]{
- Ok: ok,
- User: user,
- Tr: GetTr(user),
- }
-}