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