diff options
Diffstat (limited to 'internal/db')
| -rw-r--r-- | internal/db/redis/image.go | 16 |
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 } |