| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- import { user } from "./user.js";
- export class login_manager {
- get apikey() {
- return localStorage.getItem("apikey");
- }
- get logged_in() {
- return localStorage.getItem("apikey") !== null;
- }
- #create_request(data) {
- return {
- method: "POST",
- body: JSON.stringify(data),
- headers: {
- "Content-Type": "application/json"
- }
- };
- }
- async get_user() {
- if (!this.logged_in) {
- return null;
- }
- const request_data = this.#create_request({
- apikey: this.apikey
- });
- const request = await fetch("/user", request_data);
- const response = await request.json();
- if (response.result !== "success") {
- return null;
- }
- return new user(
- response.nick,
- response.apikey
- );
- }
- async login(nick, password) {
- const request_data = this.#create_request({
- nick: nick,
- password: password
- });
- const request = await fetch("/user/login", request_data);
- const response = await request.json();
- if (response.result !== "success") {
- return false;
- }
- localStorage.setItem("apikey", response.apikey);
- return true;
- }
- logout() {
- localStorage.removeItem("apikey");
- }
- }
|