Start implementing a new user page for account and security settings
This commit is contained in:
23
Frontend/src/helper/api.ts
Normal file
23
Frontend/src/helper/api.ts
Normal file
@ -0,0 +1,23 @@
|
||||
import { Client } from "@hibas123/openauth-internalapi";
|
||||
import request, { RequestError } from "./request";
|
||||
|
||||
const provider = new Client.ServiceProvider((data) => {
|
||||
request("/api/jrpc", {}, "POST", data, true, true).then(result => {
|
||||
provider.onPacket(result);
|
||||
}).catch(err => {
|
||||
if (err instanceof RequestError) {
|
||||
let data = err.response;
|
||||
if (data.error && Array.isArray(data.error)) {
|
||||
data.error = data.error[0];
|
||||
}
|
||||
provider.onPacket(data);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
const InternalAPI = {
|
||||
Account: new Client.AccountService(provider),
|
||||
Security: new Client.SecurityService(provider),
|
||||
}
|
||||
|
||||
export default InternalAPI;
|
@ -2,6 +2,15 @@ import { getCookie } from "./cookie";
|
||||
|
||||
const baseURL = "";
|
||||
|
||||
export class RequestError extends Error {
|
||||
response: any;
|
||||
constructor(message: string, response: any) {
|
||||
super(message);
|
||||
this.name = "RequestError";
|
||||
this.response = response;
|
||||
}
|
||||
}
|
||||
|
||||
export default async function request(
|
||||
endpoint: string,
|
||||
parameters: { [key: string]: string } = {},
|
||||
@ -46,7 +55,7 @@ export default async function request(
|
||||
);
|
||||
window.location.href = `/login?state=${state}&base64=true`;
|
||||
}
|
||||
return Promise.reject(new Error(data.error));
|
||||
return Promise.reject(new RequestError(data.error, data));
|
||||
}
|
||||
return data;
|
||||
});
|
||||
|
Reference in New Issue
Block a user