66 lines
34 KiB
JavaScript
66 lines
34 KiB
JavaScript
|
|
"use strict";
|
||
|
|
/*
|
||
|
|
* ATTENTION: An "eval-source-map" devtool has been used.
|
||
|
|
* This devtool is neither made for production nor for readable output files.
|
||
|
|
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
|
||
|
|
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
|
||
|
|
* or disable the default devtool with "devtool: false".
|
||
|
|
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
|
||
|
|
*/
|
||
|
|
(() => {
|
||
|
|
var exports = {};
|
||
|
|
exports.id = "pages/api/cards/import-pokemon";
|
||
|
|
exports.ids = ["pages/api/cards/import-pokemon"];
|
||
|
|
exports.modules = {
|
||
|
|
|
||
|
|
/***/ "(api-node)/./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES_API&page=%2Fapi%2Fcards%2Fimport-pokemon&preferredRegion=&absolutePagePath=.%2Fpages%2Fapi%2Fcards%2Fimport-pokemon.js&middlewareConfigBase64=e30%3D!":
|
||
|
|
/*!**************************************************************************************************************************************************************************************************************************************************!*\
|
||
|
|
!*** ./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES_API&page=%2Fapi%2Fcards%2Fimport-pokemon&preferredRegion=&absolutePagePath=.%2Fpages%2Fapi%2Fcards%2Fimport-pokemon.js&middlewareConfigBase64=e30%3D! ***!
|
||
|
|
\**************************************************************************************************************************************************************************************************************************************************/
|
||
|
|
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
||
|
|
|
||
|
|
eval("__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ config: () => (/* binding */ config),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ handler: () => (/* binding */ handler)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_api_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/api-utils */ \"(api-node)/./node_modules/next/dist/server/api-utils/index.js\");\n/* harmony import */ var next_dist_server_api_utils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_api_utils__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/route-kind */ \"(api-node)/./node_modules/next/dist/server/route-kind.js\");\n/* harmony import */ var next_dist_server_route_modules_pages_api_module_compiled__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/server/route-modules/pages-api/module.compiled */ \"(api-node)/./node_modules/next/dist/server/route-modules/pages-api/module.compiled.js\");\n/* harmony import */ var next_dist_server_route_modules_pages_api_module_compiled__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_route_modules_pages_api_module_compiled__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/dist/build/templates/helpers */ \"(api-node)/./node_modules/next/dist/build/templates/helpers.js\");\n/* harmony import */ var _pages_api_cards_import_pokemon_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./pages/api/cards/import-pokemon.js */ \"(api-node)/./pages/api/cards/import-pokemon.js\");\n/* harmony import */ var next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! next/dist/server/lib/trace/tracer */ \"(api-node)/./node_modules/next/dist/server/lib/trace/tracer.js\");\n/* harmony import */ var next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! next/dist/server/lib/trace/constants */ \"(api-node)/./node_modules/next/dist/server/lib/trace/constants.js\");\n/* harmony import */ var next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_6__);\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_pages_api_cards_import_pokemon_js__WEBPACK_IMPORTED_MODULE_4__]);\n_pages_api_cards_import_pokemon_js__WEBPACK_IMPORTED_MODULE_4__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];\n\n\n\n\n// Import the userland code.\n\n\n\n// Re-export the handler (should be the default export).\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_3__.hoist)(_pages_api_cards_import_pokemon_js__WEBPACK_IMPORTED_MODULE_4__, 'default'));\n// Re-export config.\nconst config = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_3__.hoist)(_pages_api_cards_import_pokemon_js__WEBPACK_IMPORTED_MODULE_4__, 'config');\n// Create and export the route module that will be consumed.\nconst routeModule = new next_dist_server_route_modules_pages_api_module_compiled__WEBPACK_IMPORTED_MODULE_2__.PagesAPIRouteModule({\n definition: {\n kind: next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.PAGES_API,\n page: \"/api/cards/import-pokemon\",\n pathname: \"/api/cards/import-
|
||
|
|
|
||
|
|
/***/ }),
|
||
|
|
|
||
|
|
/***/ "(api-node)/./pages/api/cards/import-pokemon.js":
|
||
|
|
/*!*******************************************!*\
|
||
|
|
!*** ./pages/api/cards/import-pokemon.js ***!
|
||
|
|
\*******************************************/
|
||
|
|
/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => {
|
||
|
|
|
||
|
|
eval("__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ handler)\n/* harmony export */ });\n/* harmony import */ var _vercel_postgres__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @vercel/postgres */ \"@vercel/postgres\");\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_vercel_postgres__WEBPACK_IMPORTED_MODULE_0__]);\n_vercel_postgres__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];\n\nasync function handler(req, res) {\n if (req.method !== 'POST') {\n return res.status(405).json({\n error: 'Method not allowed'\n });\n }\n try {\n const { setCode } = req.body;\n if (!setCode) {\n return res.status(400).json({\n error: 'Set code is required'\n });\n }\n // Fetch cards from Pokemon TCG API\n const response = await fetch(`https://api.pokemontcg.io/v2/cards?q=set.id:${setCode}&pageSize=250`);\n if (!response.ok) {\n throw new Error(`Pokemon TCG API error: ${response.status}`);\n }\n const data = await response.json();\n const cards = data.data || [];\n let importedCount = 0;\n let skippedCount = 0;\n for (const card of cards){\n try {\n // Check if card already exists\n const existingCard = await (0,_vercel_postgres__WEBPACK_IMPORTED_MODULE_0__.sql)`\n SELECT id FROM cards WHERE scryfall_id = ${card.id}\n `;\n if (existingCard.rows.length > 0) {\n skippedCount++;\n continue;\n }\n // Extract price data from TCGPlayer\n let currentPrice = null;\n if (card.tcgplayer?.prices?.normal?.market) {\n currentPrice = parseFloat(card.tcgplayer.prices.normal.market);\n } else if (card.tcgplayer?.prices?.holofoil?.market) {\n currentPrice = parseFloat(card.tcgplayer.prices.holofoil.market);\n }\n // Determine rarity\n let rarity = card.rarity || 'Unknown';\n if (rarity.includes('Holo')) {\n rarity = 'Holographic';\n } else if (rarity.includes('Secret')) {\n rarity = 'Secret Rare';\n } else if (rarity.includes('Ultra')) {\n rarity = 'Ultra Rare';\n }\n // Insert card into database\n await (0,_vercel_postgres__WEBPACK_IMPORTED_MODULE_0__.sql)`\n INSERT INTO cards (\n name, set_name, set_code, card_number, rarity, game,\n mana_cost, cmc, card_type, colors, oracle_text,\n power, toughness, image_url, stock_image_url,\n current_price, market_price, scryfall_id, verified\n ) VALUES (\n ${card.name}, ${card.set.name}, ${card.set.id}, ${card.number},\n ${rarity}, 'Pokemon', null, null, ${card.supertype || 'Pokemon'},\n ${JSON.stringify(card.types || [])}, ${card.flavorText || null},\n ${card.attacks?.[0]?.damage || null}, null,\n ${card.images?.small || null}, ${card.images?.large || null},\n ${currentPrice}, null, ${card.id}, true\n )\n `;\n importedCount++;\n } catch (error) {\n console.error(`Error importing card ${card.name}:`, error);\n skippedCount++;\n }\n }\n res.status(200).json({\n success: true,\n message: `Import completed for set ${setCode}`,\n imported: importedCount,\n skipped: skippedCount,\n total: cards.le
|
||
|
|
|
||
|
|
/***/ }),
|
||
|
|
|
||
|
|
/***/ "@vercel/postgres":
|
||
|
|
/*!***********************************!*\
|
||
|
|
!*** external "@vercel/postgres" ***!
|
||
|
|
\***********************************/
|
||
|
|
/***/ ((module) => {
|
||
|
|
|
||
|
|
module.exports = import("@vercel/postgres");;
|
||
|
|
|
||
|
|
/***/ }),
|
||
|
|
|
||
|
|
/***/ "next/dist/compiled/next-server/pages-api.runtime.dev.js":
|
||
|
|
/*!**************************************************************************!*\
|
||
|
|
!*** external "next/dist/compiled/next-server/pages-api.runtime.dev.js" ***!
|
||
|
|
\**************************************************************************/
|
||
|
|
/***/ ((module) => {
|
||
|
|
|
||
|
|
module.exports = require("next/dist/compiled/next-server/pages-api.runtime.dev.js");
|
||
|
|
|
||
|
|
/***/ })
|
||
|
|
|
||
|
|
};
|
||
|
|
;
|
||
|
|
|
||
|
|
// load runtime
|
||
|
|
var __webpack_require__ = require("../../../webpack-api-runtime.js");
|
||
|
|
__webpack_require__.C(exports);
|
||
|
|
var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
|
||
|
|
var __webpack_exports__ = __webpack_require__.X(0, ["vendor-chunks/next"], () => (__webpack_exec__("(api-node)/./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES_API&page=%2Fapi%2Fcards%2Fimport-pokemon&preferredRegion=&absolutePagePath=.%2Fpages%2Fapi%2Fcards%2Fimport-pokemon.js&middlewareConfigBase64=e30%3D!")));
|
||
|
|
module.exports = __webpack_exports__;
|
||
|
|
|
||
|
|
})();
|