You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
2.2 KiB
JavaScript
89 lines
2.2 KiB
JavaScript
import { SET_TOKEN } from "./authTypes";
|
|
|
|
function isJson(str) {
|
|
try {
|
|
JSON.parse(str);
|
|
} catch (e) {
|
|
//the json is not ok
|
|
return false;
|
|
}
|
|
//the json is ok
|
|
return true;
|
|
}
|
|
|
|
export const login = async (data, dispatchToken) => {
|
|
const requestOptions = {
|
|
method: "POST",
|
|
headers: {
|
|
Accept: "application/json",
|
|
"Content-Type": "application/json",
|
|
},
|
|
body: JSON.stringify(data),
|
|
};
|
|
|
|
try {
|
|
const response = await fetch(
|
|
`http://127.0.0.1:8000/api/token`,
|
|
requestOptions
|
|
);
|
|
|
|
if (response.ok) {
|
|
const res = await response.json();
|
|
window.localStorage.setItem("userToken", res.token);
|
|
dispatchToken({ type: SET_TOKEN, token: res.token });
|
|
return {
|
|
ok: true,
|
|
successMessage: "Login Successfull.",
|
|
errors: null,
|
|
};
|
|
} else {
|
|
const res = await response.json();
|
|
return {
|
|
ok: false,
|
|
successMessage: null,
|
|
errors: { password: res.errors["non_field_errors"] },
|
|
};
|
|
}
|
|
} catch (error) {
|
|
alert(error);
|
|
}
|
|
};
|
|
|
|
export const register = async (data, dispatchToken) => {
|
|
const requestOptions = {
|
|
method: "POST",
|
|
headers: {
|
|
Accept: "application/json",
|
|
"Content-Type": "application/json",
|
|
},
|
|
body: JSON.stringify(data),
|
|
};
|
|
|
|
try {
|
|
const response = await fetch(
|
|
`http://127.0.0.1:8000/api/register`,
|
|
requestOptions
|
|
);
|
|
|
|
if (response.ok) {
|
|
const res = await response.json();
|
|
window.localStorage.setItem("userToken", res.token);
|
|
dispatchToken({ type: SET_TOKEN, token: res.token });
|
|
return {
|
|
ok: true,
|
|
successMessage: "Register Successfull.",
|
|
errors: null,
|
|
};
|
|
} else {
|
|
const res = await response.json();
|
|
return {
|
|
ok: false,
|
|
successMessage: null,
|
|
errors: res["errors"],
|
|
};
|
|
}
|
|
} catch (error) {
|
|
alert(error);
|
|
}
|
|
};
|