Commit 96bc2be9 authored by chechunchi's avatar chechunchi

fix the mdproDeck implemetaion

parent d76858d3
Pipeline #41976 passed with stages
in 3 minutes and 38 seconds
......@@ -5,13 +5,23 @@ import { MdproResp } from "./schema";
import { mdproHeaders } from "./util";
const { mdproServer } = useConfig();
const API_PATH = "/api/mdpro3/sync/single";
const API_PATH = "api/mdpro3/sync/single";
interface DeleteReq {
userId: number;
deckContributor: string;
deck: {
deckId: string;
deckName: string;
deckType: string;
deckCoverCard1: number;
deckCoverCard2: number;
deckCoverCard3: number;
deckCase: number;
deckProtector: number;
deckYdk: string;
isDelete: boolean;
timestamp: number;
};
}
......@@ -19,6 +29,7 @@ export async function deleteDeck(
userID: number,
token: string,
deckID: string,
deckContributor: string = "", // Added parameter with default
): Promise<MdproResp<boolean> | undefined> {
const myHeaders = mdproHeaders();
myHeaders.append("Content-Type", "application/json");
......@@ -26,9 +37,19 @@ export async function deleteDeck(
const req: DeleteReq = {
userId: userID,
deckContributor: deckContributor,
deck: {
deckId: deckID,
deckName: "", // Required but not used for delete
deckType: "", // Required field
deckCoverCard1: 0, // Required field
deckCoverCard2: 0, // Required field
deckCoverCard3: 0, // Required field
deckCase: 0, // Required field
deckProtector: 0, // Required field
deckYdk: "", // Required but not used for delete
isDelete: true,
timestamp: Date.now(),
},
};
......
......@@ -6,7 +6,7 @@ import { mdproHeaders } from "./util";
const { mdproServer } = useConfig();
const API_PATH = "/api/mdpro3/deck/deckId";
const API_PATH = "api/mdpro3/deck/deckId";
export async function generateDeck(): Promise<MdproResp<string> | undefined> {
const myHeaders = mdproHeaders();
......
......@@ -6,7 +6,7 @@ import { mdproHeaders } from "./util";
const { mdproServer } = useConfig();
const API_PATH = "/api/mdpro3/deck";
const API_PATH = "api/mdpro3/deck";
export async function mgetDeck(
id: string,
......
......@@ -6,7 +6,7 @@ import { MdproDeck, MdproResp } from "./schema";
import { mdproHeaders } from "./util";
const { mdproServer } = useConfig();
const API_PATH = "/api/mdpro3/sync/";
const API_PATH = "api/mdpro3/sync";
export interface PersonalListReq {
/* ID of MyCard Account */
......
......@@ -19,13 +19,19 @@ export interface MdproDeck {
deckName: string;
deckRank?: number;
deckLike?: number;
deckUploadDate?: string;
deckUpdateDate?: string;
deckUploadDate?: number; // Changed to number (13-digit timestamp)
deckUpdateDate?: number; // Changed to number (13-digit timestamp)
deckCoverCard1?: number; // NEW: Cover card 1 ID
deckCoverCard2?: number; // NEW: Cover card 2 ID
deckCoverCard3?: number; // NEW: Cover card 3 ID
/* Content of the deck. */
deckYdk?: string;
deckCase: number;
deckProtector?: number; // NEW: Card protector/sleeve
/* User ID of MyCard Account */
userId: number;
isDelete?: boolean; // NEW: Whether deck is deleted
isPublic?: boolean; // NEW: Whether deck is public
}
export interface MdproDeckLike {
......@@ -33,6 +39,10 @@ export interface MdproDeckLike {
deckContributor: string;
deckName: string;
deckLike?: number;
deckCoverCard1?: number; // NEW: Cover card 1 ID
deckCoverCard2?: number; // NEW: Cover card 2 ID
deckCoverCard3?: number; // NEW: Cover card 3 ID
deckCase: number;
lastDate?: string;
deckProtector?: number; // NEW: Card protector/sleeve
lastDate?: number; // Changed to number (timestamp)
}
......@@ -5,7 +5,7 @@ import { MdproResp } from "./schema";
import { mdproHeaders } from "./util";
const { mdproServer } = useConfig();
const API_PATH = "/api/mdpro3/sync/single";
const API_PATH = "api/mdpro3/sync/single";
export interface SyncReq {
userId: number;
......@@ -13,8 +13,15 @@ export interface SyncReq {
deck: {
deckId: string;
deckName: string;
deckType?: string; // NEW: Deck type/category (optional, can use empty string)
deckCoverCard1?: number; // NEW: Cover card 1
deckCoverCard2?: number; // NEW: Cover card 2
deckCoverCard3?: number; // NEW: Cover card 3
deckCase: number;
deckProtector?: number; // NEW: Card protector/sleeve
deckYdk: string;
isDelete?: boolean; // NEW: Whether this is a delete operation
timestamp?: number; // NEW: Update timestamp (10 or 13 digit)
};
}
......
......@@ -5,7 +5,7 @@ import { MdproResp } from "./schema";
import { mdproHeaders } from "./util";
const { mdproServer } = useConfig();
const API_PATH = "/api/mdpro3/deck/public";
const API_PATH = "api/mdpro3/deck/public";
export interface UpdatePublicReq {
userId: number;
......
......@@ -32,8 +32,15 @@ export async function uploadDeck(
deck: {
deckId,
deckName: req.deck.deckName,
deckType: "", // NEW: Default empty string for deck type
deckCoverCard1: 0, // NEW: Default to 0
deckCoverCard2: 0, // NEW: Default to 0
deckCoverCard3: 0, // NEW: Default to 0
deckCase: req.deck.deckCase,
deckProtector: 0, // NEW: Default to 0
deckYdk: req.deck.deckYdk,
isDelete: false, // NEW: Not a delete operation
timestamp: Date.now(), // NEW: Current timestamp
},
},
req.token,
......
......@@ -107,7 +107,12 @@ const MdproDeckBlock: React.FC<{
const onDelete = async () => {
if (user) {
const resp = await deleteDeck(user.id, user.token, deck.deckId);
const resp = await deleteDeck(
user.id,
user.token,
deck.deckId,
user.username,
);
if (resp?.code === 0 && resp.data === true) {
message.success(
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment