From 28ef35d36a1d569db7daf4a3c1deba914e5e5464 Mon Sep 17 00:00:00 2001 From: Robert Swain Date: Thu, 18 May 2017 12:09:33 +0200 Subject: [PATCH] mediaapi/storage: Rework GetMediaMetadata API to return new MediaMetadata --- .../matrix-org/dendrite/mediaapi/storage/storage.go | 11 ++--------- .../matrix-org/dendrite/mediaapi/writers/download.go | 6 ++++-- .../matrix-org/dendrite/mediaapi/writers/upload.go | 3 ++- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/github.com/matrix-org/dendrite/mediaapi/storage/storage.go b/src/github.com/matrix-org/dendrite/mediaapi/storage/storage.go index 17b770cea..c5d5b68a6 100644 --- a/src/github.com/matrix-org/dendrite/mediaapi/storage/storage.go +++ b/src/github.com/matrix-org/dendrite/mediaapi/storage/storage.go @@ -48,13 +48,6 @@ func (d *Database) StoreMediaMetadata(mediaMetadata *types.MediaMetadata) error } // GetMediaMetadata possibly selects the metadata about previously uploaded media from the database. -func (d *Database) GetMediaMetadata(mediaID types.MediaID, mediaOrigin gomatrixserverlib.ServerName, mediaMetadata *types.MediaMetadata) error { - metadata, err := d.statements.selectMedia(mediaID, mediaOrigin) - mediaMetadata.ContentType = metadata.ContentType - mediaMetadata.ContentDisposition = metadata.ContentDisposition - mediaMetadata.ContentLength = metadata.ContentLength - mediaMetadata.CreationTimestamp = metadata.CreationTimestamp - mediaMetadata.UploadName = metadata.UploadName - mediaMetadata.UserID = metadata.UserID - return err +func (d *Database) GetMediaMetadata(mediaID types.MediaID, mediaOrigin gomatrixserverlib.ServerName) (*types.MediaMetadata, error) { + return d.statements.selectMedia(mediaID, mediaOrigin) } diff --git a/src/github.com/matrix-org/dendrite/mediaapi/writers/download.go b/src/github.com/matrix-org/dendrite/mediaapi/writers/download.go index e64350ef0..02c256d4a 100644 --- a/src/github.com/matrix-org/dendrite/mediaapi/writers/download.go +++ b/src/github.com/matrix-org/dendrite/mediaapi/writers/download.go @@ -115,10 +115,11 @@ func Download(w http.ResponseWriter, req *http.Request, origin gomatrixserverlib } // check if we have a record of the media in our database - err := db.GetMediaMetadata(r.MediaMetadata.MediaID, r.MediaMetadata.Origin, r.MediaMetadata) + mediaMetadata, err := db.GetMediaMetadata(r.MediaMetadata.MediaID, r.MediaMetadata.Origin) if err == nil { // If we have a record, we can respond from the local file + r.MediaMetadata = mediaMetadata r.respondFromLocalFile(w, cfg.BasePath) return } else if err == sql.ErrNoRows && r.MediaMetadata.Origin != cfg.ServerName { @@ -131,9 +132,10 @@ func Download(w http.ResponseWriter, req *http.Request, origin gomatrixserverlib for tries := 0; ; tries++ { activeRemoteRequests.Lock() - err = db.GetMediaMetadata(r.MediaMetadata.MediaID, r.MediaMetadata.Origin, r.MediaMetadata) + mediaMetadata, err = db.GetMediaMetadata(r.MediaMetadata.MediaID, r.MediaMetadata.Origin) if err == nil { // If we have a record, we can respond from the local file + r.MediaMetadata = mediaMetadata r.respondFromLocalFile(w, cfg.BasePath) activeRemoteRequests.Unlock() return diff --git a/src/github.com/matrix-org/dendrite/mediaapi/writers/upload.go b/src/github.com/matrix-org/dendrite/mediaapi/writers/upload.go index a5085d595..ae423d348 100644 --- a/src/github.com/matrix-org/dendrite/mediaapi/writers/upload.go +++ b/src/github.com/matrix-org/dendrite/mediaapi/writers/upload.go @@ -194,8 +194,9 @@ func Upload(req *http.Request, cfg *config.MediaAPI, db *storage.Database) util. }).Info("File uploaded") // check if we already have a record of the media in our database and if so, we can remove the temporary directory - err = db.GetMediaMetadata(r.MediaMetadata.MediaID, r.MediaMetadata.Origin, &types.MediaMetadata{}) + mediaMetadata, err := db.GetMediaMetadata(r.MediaMetadata.MediaID, r.MediaMetadata.Origin) if err == nil { + r.MediaMetadata = mediaMetadata removeDir(tmpDir, logger) return util.JSONResponse{ Code: 200,