dashboard: add staff vuex store
This commit is contained in:
parent
d03d729438
commit
f90ee12b9f
3 changed files with 44 additions and 0 deletions
15
backend/src/api/staff.ts
Normal file
15
backend/src/api/staff.ts
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
import express, { Request, Response } from "express";
|
||||||
|
import { apiTokenAuthHandlers } from "./auth";
|
||||||
|
import { isStaff } from "../staff";
|
||||||
|
|
||||||
|
export function initStaff(app: express.Express) {
|
||||||
|
const staffRouter = express.Router();
|
||||||
|
staffRouter.use(...apiTokenAuthHandlers());
|
||||||
|
|
||||||
|
staffRouter.get("/status", (req: Request, res: Response) => {
|
||||||
|
const userIsStaff = isStaff(req.user.userId);
|
||||||
|
res.json({ isStaff: userIsStaff });
|
||||||
|
});
|
||||||
|
|
||||||
|
app.use("/staff", staffRouter);
|
||||||
|
}
|
24
dashboard/src/store/staff.ts
Normal file
24
dashboard/src/store/staff.ts
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
import { get, post } from "../api";
|
||||||
|
import { Module } from "vuex";
|
||||||
|
import { RootState, StaffState } from "./types";
|
||||||
|
|
||||||
|
export const StaffStore: Module<StaffState, RootState> = {
|
||||||
|
namespaced: true,
|
||||||
|
|
||||||
|
state: {
|
||||||
|
isStaff: false,
|
||||||
|
},
|
||||||
|
|
||||||
|
actions: {
|
||||||
|
async checkStatus({ commit }) {
|
||||||
|
const status = await get("staff/status");
|
||||||
|
commit("setStatus", status.isStaff);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
mutations: {
|
||||||
|
setStatus(state: StaffState, value: boolean) {
|
||||||
|
state.isStaff = value;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
|
@ -24,6 +24,10 @@ export interface GuildState {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface StaffState {
|
||||||
|
isStaff: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
export interface ThinDocsPlugin {
|
export interface ThinDocsPlugin {
|
||||||
name: string;
|
name: string;
|
||||||
info: {
|
info: {
|
||||||
|
@ -57,4 +61,5 @@ export type RootState = {
|
||||||
auth: AuthState;
|
auth: AuthState;
|
||||||
guilds: GuildState;
|
guilds: GuildState;
|
||||||
docs: DocsState;
|
docs: DocsState;
|
||||||
|
staff: StaffState;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Reference in a new issue