From c9ad894003fedf1a4944e01e3ace2ef6c214864a Mon Sep 17 00:00:00 2001
From: Paul Kaplan <pkaplan@media.mit.edu>
Date: Tue, 19 Jun 2018 10:51:32 -0400
Subject: [PATCH] Create API method for saving a backpack object

---
 src/lib/backpack-api.js | 30 +++++++++++++++++++++++++++++-
 1 file changed, 29 insertions(+), 1 deletion(-)

diff --git a/src/lib/backpack-api.js b/src/lib/backpack-api.js
index 0ec46260a..3b1a55e15 100644
--- a/src/lib/backpack-api.js
+++ b/src/lib/backpack-api.js
@@ -1,4 +1,6 @@
 import xhr from 'xhr';
+import costumePayload from './backpack/costume-payload';
+import soundPayload from './backpack/sound-payload';
 
 const getBackpackContents = ({
     host,
@@ -24,6 +26,32 @@ const getBackpackContents = ({
     });
 });
 
+const saveBackpackObject = ({
+    host,
+    username,
+    token,
+    type, // Type of object being saved to the backpack
+    mime, // Mime-type of the object being saved
+    name, // User-facing name of the object being saved
+    body, // Base64-encoded body of the object being saved
+    thumbnail // Base64-encoded JPEG thumbnail of the object being saved
+}) => new Promise((resolve, reject) => {
+    xhr({
+        method: 'POST',
+        uri: `${host}${username}`,
+        headers: {'x-token': token},
+        json: {type, mime, name, body, thumbnail}
+    }, (error, response) => {
+        if (error || response.statusCode !== 200) {
+            return reject();
+        }
+        return resolve(response.body);
+    });
+});
+
 export {
-    getBackpackContents
+    getBackpackContents,
+    saveBackpackObject,
+    costumePayload,
+    soundPayload
 };
-- 
GitLab