aboutsummaryrefslogtreecommitdiff
path: root/internal/db/redis/image.go
diff options
context:
space:
mode:
authorMax Resnick <max@ofmax.li>2020-06-27 21:23:44 -0700
committerMax Resnick <max@ofmax.li>2020-07-26 22:16:40 -0700
commit77c2e6aca2dc0f851f55e30a0f49c9ee7c2c952e (patch)
treebf5b062468b21c9b61d96e2d73dfbc183fc58dc9 /internal/db/redis/image.go
parent85e7eaa3a1c9024c02cc9a63744cdfb144cc3737 (diff)
downloadiserv-77c2e6aca2dc0f851f55e30a0f49c9ee7c2c952e.tar.gz
adds post meta, basic template for single image
Diffstat (limited to '')
-rw-r--r--internal/db/redis/image.go16
1 files changed, 11 insertions, 5 deletions
diff --git a/internal/db/redis/image.go b/internal/db/redis/image.go
index 1f4e8fa..f216531 100644
--- a/internal/db/redis/image.go
+++ b/internal/db/redis/image.go
@@ -1,6 +1,7 @@
package redis
import (
+ "errors"
"fmt"
"log"
@@ -11,6 +12,8 @@ import (
const V1FilePathFmt = "v1imagepost:%s"
+var ErrNotFound error = errors.New("Not Found")
+
// ImageRepo deps. for storage
type ImageRepo struct {
db *redis.Pool
@@ -23,14 +26,14 @@ func NewRedisImageRepo(conn *redis.Pool) *ImageRepo {
}
}
-func fileKey(filename, V1FilePathFmt string) string {
- return fmt.Sprintf(V1FilePathFmt, filename)
+func fileKey(imageID, V1FilePathFmt string) string {
+ return fmt.Sprintf(V1FilePathFmt, imageID)
}
-func (r *ImageRepo) AddNewFile(filename string, meta *image.PostMeta, timeout int) error {
+func (r *ImageRepo) AddNewFile(imageID string, meta *image.PostMeta, timeout int) error {
conn := r.db.Get()
defer conn.Close()
- key := fileKey(filename, V1FilePathFmt)
+ key := fileKey(imageID, V1FilePathFmt)
_, err := conn.Do("HMSET", redis.Args{}.Add(key).AddFlat(meta)...)
if err != nil {
log.Fatal(err)
@@ -45,8 +48,11 @@ func (r *ImageRepo) GetFile(fileUrl string) (*image.PostMeta, error) {
key := fileKey(fileUrl, V1FilePathFmt)
res, err := redis.Values(conn.Do("HGETALL", key))
if err != nil {
- return &image.PostMeta{}, err
+ return &image.PostMeta{}, ErrNotFound
}
err = redis.ScanStruct(res, imageMeta)
+ if imageMeta.FilePath == "" {
+ return &image.PostMeta{}, ErrNotFound
+ }
return imageMeta, err
}