From 1cc1c26d17d92f8faa6fab062c5ed17c314dfacf Mon Sep 17 00:00:00 2001
From: Travis Ralston <travpc@gmail.com>
Date: Sat, 10 Nov 2018 17:33:51 -0700
Subject: [PATCH] Add hashes to the media info API

---
 .../matrix-media-repo/api/unstable/info.go     | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/src/github.com/turt2live/matrix-media-repo/api/unstable/info.go b/src/github.com/turt2live/matrix-media-repo/api/unstable/info.go
index 816ecc0a..5296baa2 100644
--- a/src/github.com/turt2live/matrix-media-repo/api/unstable/info.go
+++ b/src/github.com/turt2live/matrix-media-repo/api/unstable/info.go
@@ -12,12 +12,17 @@ import (
 	"github.com/turt2live/matrix-media-repo/controllers/download_controller"
 )
 
+type mediaInfoHashes struct {
+	Sha256 string `json:"sha256"`
+}
+
 type MediaInfoResponse struct {
-	ContentUri  string `json:"content_uri"`
-	ContentType string `json:"content_type"`
-	Width       int    `json:"width,omitempty"`
-	Height      int    `json:"height,omitempty"`
-	Size        int64  `json:"size"`
+	ContentUri  string          `json:"content_uri"`
+	ContentType string          `json:"content_type"`
+	Width       int             `json:"width,omitempty"`
+	Height      int             `json:"height,omitempty"`
+	Size        int64           `json:"size"`
+	Hashes      mediaInfoHashes `json:"hashes"`
 }
 
 func MediaInfo(r *http.Request, log *logrus.Entry, user api.UserInfo) interface{} {
@@ -60,6 +65,9 @@ func MediaInfo(r *http.Request, log *logrus.Entry, user api.UserInfo) interface{
 		ContentUri:  streamedMedia.Media.MxcUri(),
 		ContentType: streamedMedia.Media.ContentType,
 		Size:        streamedMedia.Media.SizeBytes,
+		Hashes: mediaInfoHashes{
+			Sha256: streamedMedia.Media.Sha256Hash,
+		},
 	}
 
 	img, err := imaging.Decode(streamedMedia.Stream)
-- 
GitLab