1
0
Fork 0

🚧 Few changes for the new frontend

This commit is contained in:
Joost De Cock 2019-06-09 13:38:12 +02:00
parent 38995f0da3
commit 9e91b1ad19
17 changed files with 354 additions and 11 deletions

View file

@ -0,0 +1,60 @@
import axios from "axios";
import storage from "./storage";
function useBackend(baseURL, timeout = 10000) {
// Configure Axios
const api = axios.create({ baseURL, timeout });
// Helper method for Authorization header
const auth = (token = storage.get("token")) => ({
headers: { Authorization: "Bearer " + token }
});
const backend = {};
// Oauth
backend.initOauth = data => api.post("/oauth/init", data); // Init Oauth (to get state)
backend.providerLogin = data => api.post("/oauth/login", data); // Finalize Oauth login
// Signup flow
backend.signup = (email, password, language) =>
api.post("/signup", { email, password, language }); // Signup
backend.confirm = confirmId => api.post("/confirm", { id: confirmId }); // Confirm
backend.createAccount = confirmId => api.post("/user", { id: confirmId }); // Create account
// Other non-authenticated calls
backend.login = (username, password) =>
api.post("/login", { username, password }); // Login
backend.profile = username => api.get("/users/" + username); // Load user profile
backend.loadGist = handle => api.get("/gist/" + handle); // Load draft/gist anonymously
backend.loadPatrons = handle => api.get("/patrons"); // Load patron list
// Users
backend.account = () => api.get("/account", auth()); // Try to authenticate based on stored token
backend.export = () => api.get("/export", auth()); // Export data
backend.restrict = () => api.get("/restrict", auth()); // Restrict data processing (freeze account)
backend.remove = () => api.get("/remove", auth()); // Remove account
backend.saveAccount = data => api.put("/user", data, auth()); // Update account
backend.availableUsername = data =>
api.post("/available/username", data, auth()); // Check is a username is available
backend.resetPassword = username =>
api.post("/reset/password", { username: username }, auth()); // Ask for a password reset
backend.setPassword = data => api.post("/set/password", data, auth()); // (re)set a new password
// Models
backend.removeModels = data => api.post("/remove/models", data, auth()); // Delete multiple models
backend.createModel = data => api.post("/model", data, auth()); // Create model
backend.saveModel = (handle, data) =>
api.put("/model/" + handle, data, auth()); // Update model
// Drafts
backend.createDraft = data => api.post("/draft", data, auth()); // Create draft
backend.saveDraft = (handle, data) =>
api.put("/draft/" + handle, data, auth()); // Update draft
backend.removeDraft = handle => api.delete("/draft/" + handle, auth()); // Remove draft
backend.removeDrafts = data => api.post("/remove/drafts", data, auth()); // Delete multiple drafts
return backend;
}
export default useBackend;

View file

@ -0,0 +1,11 @@
const camelCase = str =>
str
.replace(/\s(.)/g, function($1) {
return $1.toUpperCase();
})
.replace(/\s/g, "")
.replace(/^(.)/, function($1) {
return $1.toLowerCase();
});
export default camelCase;

View file

@ -1,3 +1,5 @@
export { default as backend } from "./backend";
export { default as camelCase } from "./camelCase";
export { default as cloneObject } from "./cloneObject";
export { default as defaultGist } from "./defaultGist";
export { default as defaultSa } from "./defaultSa";

View file

@ -1,9 +1,6 @@
const storage = {
set: (key, value, raw) => {
if (typeof localStorage === "undefined") {
console.log("Warning: No localStorage support");
return value;
}
if (typeof localStorage === "undefined") return value;
const _key = "fs_" + key;
if (typeof value === "undefined" || value === null)
@ -13,10 +10,7 @@ const storage = {
return value;
},
get: (key, raw) => {
if (typeof localStorage === "undefined") {
console.log("Warning: No localStorage support");
return null;
}
if (typeof localStorage === "undefined") return null;
const value = localStorage.getItem("fs_" + key);