aboutsummaryrefslogtreecommitdiff
path: root/internal/db
diff options
context:
space:
mode:
Diffstat (limited to 'internal/db')
-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
}