diff options
| author | Max Resnick <max@ofmax.li> | 2020-05-23 07:56:12 -0700 |
|---|---|---|
| committer | Max Resnick <max@ofmax.li> | 2020-06-22 22:37:17 -0700 |
| commit | 85e7eaa3a1c9024c02cc9a63744cdfb144cc3737 (patch) | |
| tree | a44855abcf5424126c54ee636463dc866e558561 /internal/db/redis/image.go | |
| parent | 4e77ad5762539d8f9edf40d2668a998c38e834d3 (diff) | |
| download | iserv-85e7eaa3a1c9024c02cc9a63744cdfb144cc3737.tar.gz | |
adds tmpl, css, and fileserver
Diffstat (limited to 'internal/db/redis/image.go')
| -rw-r--r-- | internal/db/redis/image.go | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/internal/db/redis/image.go b/internal/db/redis/image.go index 6814fb7..1f4e8fa 100644 --- a/internal/db/redis/image.go +++ b/internal/db/redis/image.go @@ -9,7 +9,7 @@ import ( "git.ofmax.li/iserv/internal/image" ) -const V1FilePathFmt = "filepath:up/%s" +const V1FilePathFmt = "v1imagepost:%s" // ImageRepo deps. for storage type ImageRepo struct { @@ -23,13 +23,30 @@ func NewRedisImageRepo(conn *redis.Pool) *ImageRepo { } } +func fileKey(filename, V1FilePathFmt string) string { + return fmt.Sprintf(V1FilePathFmt, filename) +} + func (r *ImageRepo) AddNewFile(filename string, meta *image.PostMeta, timeout int) error { conn := r.db.Get() defer conn.Close() - key := fmt.Sprintf(V1FilePathFmt, filename) + key := fileKey(filename, V1FilePathFmt) _, err := conn.Do("HMSET", redis.Args{}.Add(key).AddFlat(meta)...) if err != nil { log.Fatal(err) } return err } + +func (r *ImageRepo) GetFile(fileUrl string) (*image.PostMeta, error) { + conn := r.db.Get() + defer conn.Close() + imageMeta := &image.PostMeta{} + key := fileKey(fileUrl, V1FilePathFmt) + res, err := redis.Values(conn.Do("HGETALL", key)) + if err != nil { + return &image.PostMeta{}, err + } + err = redis.ScanStruct(res, imageMeta) + return imageMeta, err +} |