Add system variable to character

This commit is contained in:
Calli
2024-04-27 22:26:57 +03:00
parent 7d8c622711
commit cfa0a86b99
6 changed files with 29 additions and 11 deletions

View File

@@ -17,10 +17,12 @@ export const CharacterDialog = ({
}) => {
const [account, setAccount] = useState("");
const [comment, setComment] = useState("");
const [system, setSystem] = useState("");
useEffect(() => {
if (character?.account) setAccount(character.account);
if (character?.comment) setComment(character.comment);
if (character?.system) setSystem(character.system);
}, [character]);
const logout = (character: AccessToken) => {
@@ -52,6 +54,15 @@ export const CharacterDialog = ({
onChange={(event) => setAccount(event.target.value)}
onKeyDown={handleKeyDown}
/>
<TextField
id="outlined-basic"
label="System"
variant="outlined"
value={system ?? ""}
sx={{ margin: 1 }}
minRows={6}
onChange={(event) => setSystem(event.target.value)}
/>
<TextField
id="outlined-basic"
label="Comment / Plan"
@@ -62,10 +73,12 @@ export const CharacterDialog = ({
minRows={6}
onChange={(event) => setComment(event.target.value)}
/>
<DialogActions>
<Button
onClick={() => {
character && updateCharacter(character, { account, comment });
character &&
updateCharacter(character, { account, comment, system });
closeDialog();
}}
variant="contained"

View File

@@ -67,5 +67,5 @@ export const ColorContext = createContext<{
setColors: (colors: ColorSelectionType) => void;
}>({
colors: defaultColors,
setColors: () => {}
setColors: () => {},
});

View File

@@ -51,6 +51,7 @@ const Home = () => {
...c,
...(updates.account ? { account: updates.account } : {}),
...(updates.comment ? { comment: updates.comment } : {}),
...(updates.system ? { system: updates.system } : {}),
};
return c;
});

View File

@@ -1,7 +1,7 @@
import { AccessToken } from "@/types";
import { extractCharacterFromToken } from "@/utils";
import crypto from "crypto-js";
import { NextApiRequest, NextApiResponse } from "next";
import crypto from "crypto-js";
const EVE_SSO_TOKEN_URL = "https://login.eveonline.com/v2/oauth/token";
const EVE_SSO_CLIENT_ID = process.env.EVE_SSO_CLIENT_ID ?? "";
@@ -14,14 +14,14 @@ const handler = async (req: NextApiRequest, res: NextApiResponse) => {
grant_type: "refresh_token",
refresh_token: crypto.AES.decrypt(
accessToken.refresh_token,
EVE_SSO_SECRET
EVE_SSO_SECRET,
).toString(crypto.enc.Utf8),
}).toString();
const headers = {
"Content-Type": "application/x-www-form-urlencoded",
Authorization: `Basic ${Buffer.from(
`${EVE_SSO_CLIENT_ID}:${EVE_SSO_SECRET}`
`${EVE_SSO_CLIENT_ID}:${EVE_SSO_SECRET}`,
).toString("base64")}`,
Host: "login.eveonline.com",
"User-Agent": "https://github.com/calli-eve/eve-pi",
@@ -40,13 +40,14 @@ const handler = async (req: NextApiRequest, res: NextApiResponse) => {
token_type: response.token_type,
refresh_token: crypto.AES.encrypt(
response.refresh_token,
EVE_SSO_SECRET
EVE_SSO_SECRET,
).toString(),
expires_at: Date.now() + response.expires_in * 1000,
character,
needsLogin: false,
account: accessToken.account,
comment: accessToken.comment
comment: accessToken.comment,
system: accessToken.system,
};
console.log("Refresh", character.name, character.characterId);

View File

@@ -20,7 +20,7 @@ const handler = async (req: NextApiRequest, res: NextApiResponse) => {
const headers = {
"Content-Type": "application/x-www-form-urlencoded",
Authorization: `Basic ${Buffer.from(
`${EVE_SSO_CLIENT_ID}:${EVE_SSO_SECRET}`
`${EVE_SSO_CLIENT_ID}:${EVE_SSO_SECRET}`,
).toString("base64")}`,
Host: "login.eveonline.com",
"User-Agent": "https://github.com/calli-eve/eve-pi",
@@ -41,13 +41,14 @@ const handler = async (req: NextApiRequest, res: NextApiResponse) => {
token_type: response.token_type,
refresh_token: crypto.AES.encrypt(
response.refresh_token,
EVE_SSO_SECRET
EVE_SSO_SECRET,
).toString(),
expires_at: Date.now() + response.expires_in * 1000,
character,
needsLogin: false,
account: "-",
comment: "",
system: "",
};
res.json(token);
} else {

View File

@@ -9,6 +9,7 @@ export interface AccessToken {
account: string;
needsLogin: boolean;
comment: string;
system: string;
}
export interface Character {
@@ -30,6 +31,7 @@ export interface CharacterPlanets {
export interface CharacterUpdate {
account?: string;
comment?: string;
system?: string;
}
export type Planet = EsiType<"v1", "getCharactersCharacterIdPlanets">[number];
@@ -52,11 +54,11 @@ type EsiApiPathType<V extends EsiApiVersionType> = keyof InstanceType<
>[V];
type EsiApiResponseType<
V extends EsiApiVersionType,
T extends EsiApiPathType<V>
T extends EsiApiPathType<V>,
> = Awaited<ReturnType<InstanceType<typeof Api<unknown>>[V][T]>>;
export type EsiType<
V extends EsiApiVersionType,
T extends EsiApiPathType<V>
T extends EsiApiPathType<V>,
> = EsiApiResponseType<V, T> extends { data: any }
? EsiApiResponseType<V, T>["data"]
: never;