Skip to content
Snippets Groups Projects
Commit 07069eec authored by Greg Fodor's avatar Greg Fodor
Browse files

Remove networked content type state by properly passing auth token header

parent 7c7978be
No related branches found
No related tags found
No related merge requests found
import { getBox, getScaleCoefficient } from "../utils/auto-box-collider"; import { getBox, getScaleCoefficient } from "../utils/auto-box-collider";
import { resolveMedia } from "../utils/media-utils"; import { resolveMedia } from "../utils/media-utils";
const fetchContentType = async url => fetch(url, { method: "HEAD" }).then(r => r.headers.get("content-type")); const fetchContentType = async (url, token) => {
const args = { method: "HEAD" };
if (token) {
args.headers = { Authorization: `Token ${token}` };
}
return fetch(url, args).then(r => r.headers.get("content-type"));
};
AFRAME.registerComponent("media-loader", { AFRAME.registerComponent("media-loader", {
schema: { schema: {
src: { type: "string" }, src: { type: "string" },
token: { type: "string" }, token: { type: "string" },
contentType: { type: "string" },
resize: { default: false } resize: { default: false }
}, },
...@@ -64,8 +71,7 @@ AFRAME.registerComponent("media-loader", { ...@@ -64,8 +71,7 @@ AFRAME.registerComponent("media-loader", {
const { raw, origin, meta } = await resolveMedia(url); const { raw, origin, meta } = await resolveMedia(url);
console.log("resolved", url, raw, origin, meta); console.log("resolved", url, raw, origin, meta);
const contentType = const contentType = (meta && meta.expected_content_type) || (await fetchContentType(raw, token));
this.data.contentType || (meta && meta.expected_content_type) || (await fetchContentType(raw));
let blobUrl; let blobUrl;
if (token) { if (token) {
const response = await fetch(raw, { const response = await fetch(raw, {
......
...@@ -45,9 +45,8 @@ export const addMedia = (src, resize = false) => { ...@@ -45,9 +45,8 @@ export const addMedia = (src, resize = false) => {
upload(src) upload(src)
.then(response => { .then(response => {
const src = response.raw; const src = response.raw;
const contentType = response.meta.expected_content_type;
const token = response.meta.access_token; const token = response.meta.access_token;
entity.setAttribute("media-loader", { src, contentType, token }); entity.setAttribute("media-loader", { src, token });
}) })
.catch(() => { .catch(() => {
entity.setAttribute("media-loader", { src: "error" }); entity.setAttribute("media-loader", { src: "error" });
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment