aboutsummaryrefslogtreecommitdiff
path: root/internal/db/redis/image.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/db/redis/image.go')
-rw-r--r--internal/db/redis/image.go35
1 files changed, 35 insertions, 0 deletions
diff --git a/internal/db/redis/image.go b/internal/db/redis/image.go
new file mode 100644
index 0000000..6814fb7
--- /dev/null
+++ b/internal/db/redis/image.go
@@ -0,0 +1,35 @@
+package redis
+
+import (
+ "fmt"
+ "log"
+
+ "github.com/gomodule/redigo/redis"
+
+ "git.ofmax.li/iserv/internal/image"
+)
+
+const V1FilePathFmt = "filepath:up/%s"
+
+// ImageRepo deps. for storage
+type ImageRepo struct {
+ db *redis.Pool
+}
+
+// NewRedisImageRepo
+func NewRedisImageRepo(conn *redis.Pool) *ImageRepo {
+ return &ImageRepo{
+ conn,
+ }
+}
+
+func (r *ImageRepo) AddNewFile(filename string, meta *image.PostMeta, timeout int) error {
+ conn := r.db.Get()
+ defer conn.Close()
+ key := fmt.Sprintf(V1FilePathFmt, filename)
+ _, err := conn.Do("HMSET", redis.Args{}.Add(key).AddFlat(meta)...)
+ if err != nil {
+ log.Fatal(err)
+ }
+ return err
+}