0.1 #1
2 changed files with 0 additions and 159 deletions
|
@ -1,124 +0,0 @@
|
|||
import log from 'loglevel';
|
||||
|
||||
import request from './request';
|
||||
|
||||
let flingClient = {
|
||||
|
||||
deleteFling: function(flingId) {
|
||||
return request.delete(`/fling/${flingId}`)
|
||||
.then(response => log.info(`Deleted fling ${flingId}`));
|
||||
},
|
||||
|
||||
getFlings: function() {
|
||||
return request.get('/fling')
|
||||
.then(response => {
|
||||
log.info(`Got ${response.data.length} flings`);
|
||||
return response.data;
|
||||
});
|
||||
},
|
||||
|
||||
putFling: function(flingId, update) {
|
||||
return request.put(`/fling/${flingId}`, update)
|
||||
.then(response => log.info(`Updated fling ${flingId}`));
|
||||
},
|
||||
|
||||
postFling: function(newFling) {
|
||||
return request.post(`/fling`, newFling)
|
||||
.then(response => log.info(`Created fling ${response.data}`));
|
||||
},
|
||||
|
||||
getFling: function(flingId) {
|
||||
return request.get(`/fling?flingId=${flingId}`)
|
||||
.then(response => {
|
||||
log.info(`Got fling ${flingId}`);
|
||||
return response.data;
|
||||
});
|
||||
},
|
||||
|
||||
getFlingByShareId: function(shareId) {
|
||||
if(!shareId) return Promise.resolve(null);
|
||||
|
||||
return request.get(`/fling?shareId=${shareId}`)
|
||||
.then(response => {
|
||||
log.info(`Got fling ${response.data.id}`);
|
||||
return response.data;
|
||||
})
|
||||
.catch(err => {
|
||||
if (err.isAxiosError && err.response.status === 404) {
|
||||
return null;
|
||||
}
|
||||
throw err;
|
||||
});
|
||||
},
|
||||
|
||||
getShareExists: function(shareId) {
|
||||
if(!shareId) {
|
||||
console.info("Empty share id, do not check uniqueness");
|
||||
return Promise.resolve(true);
|
||||
}
|
||||
|
||||
return request.get(`/fling/shareExists/${shareId}`)
|
||||
.then(response => {
|
||||
if(response.data){
|
||||
log.info(`Share with id ${shareId} already exists`);
|
||||
} else {
|
||||
log.info(`Share with id ${shareId} does not exist`);
|
||||
}
|
||||
return response.data;
|
||||
});
|
||||
},
|
||||
|
||||
packageFling: function(flingId) {
|
||||
return request.get(`/fling/${flingId}/package`)
|
||||
.then(response => {
|
||||
log.debug("Got fling download id", response.data);
|
||||
let url = `${process.env.REACT_APP_API}/fling/${flingId}/download/${response.data}`;
|
||||
log.debug("Download url", url);
|
||||
return url;
|
||||
});
|
||||
},
|
||||
};
|
||||
|
||||
let artifactClient = {
|
||||
|
||||
getArtifacts: function(flingId) {
|
||||
return request.get(`/artifacts?flingId=${flingId}`)
|
||||
.then(response => {
|
||||
log.info(`Got ${response.data.length} artifacts`);
|
||||
return response.data;
|
||||
});
|
||||
},
|
||||
|
||||
postArtifact: function(flingId, artifact, progressIndicator) {
|
||||
return request.post(`/artifacts/${flingId}`, artifact)
|
||||
.then(response => {
|
||||
log.info(`Uploaded artifact: ${response.data}`);
|
||||
return request.patch(`/artifacts/${response.data.id}`,
|
||||
{name: artifact.name, size: artifact.size});
|
||||
})
|
||||
.then(response => {
|
||||
log.info(`Updated artifact data: ${response.data}`);
|
||||
return response.data;
|
||||
})
|
||||
.catch(err => log.error(`Error while uploading artifact: ${err}`));
|
||||
},
|
||||
|
||||
deleteArtifact: function(artifactId) {
|
||||
return request.delete(`/artifacts/${artifactId}`)
|
||||
.then(response => {
|
||||
log.info(`Delete artifact ${artifactId}`);
|
||||
});
|
||||
},
|
||||
|
||||
downloadArtifact: function(artifactId) {
|
||||
return request.get(`/artifacts/${artifactId}/downloadid`)
|
||||
.then(response => {
|
||||
log.debug("Got download id", response.data);
|
||||
let url = `${process.env.REACT_APP_API}/artifacts/${artifactId}/${response.data}/download`;
|
||||
log.debug("Download url", url);
|
||||
return url;
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
export {flingClient, artifactClient};
|
|
@ -1,35 +0,0 @@
|
|||
import axios from 'axios';
|
||||
import jwtDecode from 'jwt-decode';
|
||||
|
||||
function Request() {
|
||||
let request = axios.create({baseURL: process.env.REACT_APP_API});
|
||||
if(sessionStorage.getItem('token')) {
|
||||
request.defaults.headers = {'Authorization': `Bearer ${sessionStorage.getItem('token')}`};
|
||||
}
|
||||
|
||||
return request;
|
||||
}
|
||||
|
||||
function hasClaim(name, value) {
|
||||
if(!sessionStorage.getItem('token')) return false;
|
||||
let tokenPayload = jwtDecode(sessionStorage.getItem('token'));
|
||||
return tokenPayload[name] === value;
|
||||
}
|
||||
|
||||
function setAuth(token) {
|
||||
if(token == null){ // reset the auth
|
||||
sessionStorage.removeItem('token');
|
||||
request.defaults.headers = {};
|
||||
return;
|
||||
}
|
||||
|
||||
sessionStorage.setItem('token', token);
|
||||
request.defaults.headers = {'Authorization': 'Bearer '+sessionStorage.getItem('token')};
|
||||
}
|
||||
|
||||
let request = new Request();
|
||||
let isOwner = () => hasClaim("sub", "owner");
|
||||
let isUser = (shareId) => hasClaim("sub", "user") && hasClaim("sid", shareId);
|
||||
|
||||
export {isOwner, isUser, setAuth};
|
||||
export default request;
|
Loading…
Reference in a new issue