Open
Show file tree
Hide file tree
Changes from 1 commit
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Failed to load files.
Previous commit
Next commit
feat: refactor endpoint retrieval and enhance daily challenge query h…
…andling
  • Loading branch information
@XzZZzX02
XzZZzX02 committedNov 17, 2024
commit cac44adaef47c4836519c7c946d740649ff3b61f
Original file line numberDiff line numberDiff line change
Expand Up@@ -4,7 +4,7 @@
import * as vscode from "vscode";
import { leetCodeTreeDataProvider } from "../explorer/LeetCodeTreeDataProvider";
import { leetCodeExecutor } from "../leetCodeExecutor";
import { IQuickItemEx } from "../shared";
import { getEndpoint, IQuickItemEx } from "../shared";
import { Endpoint, SortingStrategy } from "../shared";
import { DialogType, promptForOpenOutputChannel, promptForSignIn } from "../utils/uiUtils";
import { deleteCache } from "./cache";
Expand DownExpand Up@@ -50,8 +50,7 @@ export async function switchEndpoint(): Promise<void> {
}

export function getLeetCodeEndpoint(): string {
const leetCodeConfig: vscode.WorkspaceConfiguration = vscode.workspace.getConfiguration("leetcode");
return leetCodeConfig.get<string>("endpoint", Endpoint.LeetCode);
return getEndpoint();
}

const SORT_ORDER: SortingStrategy[] = [
Expand Down
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,49 @@
import {getUrl, getDailyQueryStr, getDailyProblemID} from "../shared";
import {getUrl, getEndpoint, Endpoint} from "../shared";
import {LcAxios} from "../utils/httpUtils";
import {AxiosResponse} from "axios";


export const getDailyQueryStr = (): string => {
const dailyQueryStrs = {
LeetCode: `
query questionOfToday {
activeDailyCodingChallengeQuestion {
question {
frontendQuestionId: questionFrontendId
}
}
}
`,
LeetCodeCN: `
query questionOfToday {
todayRecord {
question {
frontendQuestionId: questionFrontendId
}
}
}
`
}
const point: string = getEndpoint();
switch (point) {
case Endpoint.LeetCodeCN:
return dailyQueryStrs.LeetCodeCN;
case Endpoint.LeetCode:
return dailyQueryStrs.LeetCode;
}
return "";
}

export const getDailyProblemID = (res: AxiosResponse<any, any>): string => {
const point = getEndpoint();
switch (point) {
case Endpoint.LeetCodeCN:
return res.data.data.todayRecord[0].question.frontendQuestionId;
case Endpoint.LeetCode:
return res.data.data.todayRecord[0].question.frontendQuestionId;
}
return "";
}

export const queryDailyChallenge = async (): Promise<string> => {
return LcAxios(getUrl("graphql"), {
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -2,7 +2,6 @@
// Licensed under the MIT license.

import * as vscode from "vscode";
import { AxiosResponse } from "axios";

export interface IQuickItemEx<T> extends vscode.QuickPickItem {
value: T;
Expand DownExpand Up@@ -148,8 +147,7 @@ export const urlsCn = {
};

export const getUrl = (key: string) => {
const leetCodeConfig: vscode.WorkspaceConfiguration = vscode.workspace.getConfiguration("leetcode");
const point = leetCodeConfig.get<string>("endpoint", Endpoint.LeetCode);
const point = getEndpoint();
switch (point) {
case Endpoint.LeetCodeCN:
return urlsCn[key];
Expand All@@ -163,46 +161,3 @@ export const getEndpoint = (): string => {
const leetCodeConfig: vscode.WorkspaceConfiguration = vscode.workspace.getConfiguration("leetcode");
return leetCodeConfig.get<string>("endpoint", Endpoint.LeetCode);
}


export const getDailyQueryStr = (): string => {
const dailyQueryStrs = {
LeetCode: `
query questionOfToday {
activeDailyCodingChallengeQuestion {
question {
frontendQuestionId: questionFrontendId
}
}
}
`,
LeetCodeCN: `
query questionOfToday {
todayRecord {
question {
frontendQuestionId: questionFrontendId
}
}
}
`
}
const point: string = getEndpoint();
switch (point) {
case Endpoint.LeetCodeCN:
return dailyQueryStrs.LeetCodeCN;
case Endpoint.LeetCode:
return dailyQueryStrs.LeetCode;
}
return "";
}

export const getDailyProblemID = (res: AxiosResponse<any, any>): string => {
const point = getEndpoint();
switch (point) {
case Endpoint.LeetCodeCN:
return res.data.data.todayRecord[0].question.frontendQuestionId;
case Endpoint.LeetCode:
return res.data.data.todayRecord[0].question.frontendQuestionId;
}
return "";
}