|
1234567891011121314151617181920212223242526272829303132 |
- "use client";
-
- import { NEXT_PUBLIC_API_URL } from "@/config/api";
-
- export const exportUserQrCode = async (userIds: number[]): Promise<{ blobValue: Uint8Array; filename: string }> => {
-
- const token = localStorage.getItem("accessToken");
-
- const response = await fetch(`${NEXT_PUBLIC_API_URL}/user/export-qrcode`, {
- method: "POST",
- headers: {
- "Content-Type": "application/json",
- ...(token && { Authorization: `Bearer ${token}` }),
- },
- body: JSON.stringify({ userIds }),
- });
-
- if (!response.ok) {
- if (response.status === 401) {
- throw new Error("Unauthorized: Please log in again");
- }
- throw new Error(`Failed to export QR code: ${response.status} ${response.statusText}`);
- }
-
- const filename = response.headers.get("Content-Disposition")?.split("filename=")[1]?.replace(/"/g, "") || "user_qrcode.pdf";
-
- const blob = await response.blob();
- const arrayBuffer = await blob.arrayBuffer();
- const blobValue = new Uint8Array(arrayBuffer);
-
- return { blobValue, filename };
- };
|