| const handler = async (req, res) => { |
| try { |
| const { text, size = 200, format = 'png' } = req.query; |
|
|
| if (!text) { |
| return res.status(400).json({ |
| success: false, |
| error: 'Missing required parameter: text' |
| }); |
| } |
|
|
| const validSizes = [100, 150, 200, 250, 300, 400, 500]; |
| const validFormats = ['png', 'svg']; |
|
|
| if (!validSizes.includes(parseInt(size))) { |
| return res.status(400).json({ |
| success: false, |
| error: 'Invalid size. Valid sizes: ' + validSizes.join(', ') |
| }); |
| } |
|
|
| if (!validFormats.includes(format.toLowerCase())) { |
| return res.status(400).json({ |
| success: false, |
| error: 'Invalid format. Valid formats: ' + validFormats.join(', ') |
| }); |
| } |
|
|
| const qrApiUrl = `https://api.qrserver.com/v1/create-qr-code/?size=${size}x${size}&data=${encodeURIComponent(text)}&format=${format}`; |
|
|
| res.json({ |
| success: true, |
| data: { |
| text, |
| size: parseInt(size), |
| format, |
| qr_url: qrApiUrl, |
| download_url: qrApiUrl + '&download=1' |
| } |
| }); |
|
|
| } catch (error) { |
| res.status(500).json({ |
| success: false, |
| error: error.message |
| }); |
| } |
| }; |
|
|
| module.exports = { |
| name: 'QR Code Generator', |
| description: 'Generate QR codes for text, URLs, and more with custom sizes', |
| type: 'GET', |
| routes: ['api/tools/qr/generate'], |
| tags: ['utility', 'qr', 'generator'], |
| parameters: ['text', 'size', 'format', 'key'], |
| enabled: true, |
| main: ['tools'], |
| handler |
| }; |