UNPKG

strapi-to-lokalise-plugin

Version:

Preview and sync Lokalise translations from Strapi admin

168 lines (161 loc) 3.75 kB
'use strict'; // Strapi v4 + v5 Routes - Plain Array Format // For v4: Strapi auto-loads from server/routes/admin.js // For v5: We use server/routes/index.js instead // This file serves as fallback/v4 compatibility // Official docs: https://docs.strapi.io/dev-docs/plugins/server/policies // Uses policies for authentication const routes = [ { method: 'GET', path: '/settings', handler: 'lokalise-sync.getSettings', config: { policies: ['admin::isAuthenticatedAdmin'], }, }, { method: 'POST', path: '/settings', handler: 'lokalise-sync.updateSettings', config: { policies: ['admin::isAuthenticatedAdmin'], }, }, { method: 'POST', path: '/settings/test', handler: 'lokalise-sync.testSettings', config: { policies: ['admin::isAuthenticatedAdmin'], }, }, { method: 'GET', path: '/preview', handler: 'lokalise-sync.preview', config: { policies: ['admin::isAuthenticatedAdmin'], }, }, { method: 'POST', path: '/sync', handler: 'lokalise-sync.syncSelection', config: { policies: ['admin::isAuthenticatedAdmin'], }, }, { method: 'POST', path: '/sync/all', handler: 'lokalise-sync.syncAll', config: { policies: ['admin::isAuthenticatedAdmin'], }, }, { method: 'POST', path: '/renames', handler: 'lokalise-sync.updateRenames', config: { policies: ['admin::isAuthenticatedAdmin'], }, }, { method: 'POST', path: '/slugs', handler: 'lokalise-sync.updateSlugs', config: { policies: ['admin::isAuthenticatedAdmin'], }, }, { method: 'GET', path: '/jobs', handler: 'lokalise-sync.listJobs', config: { policies: ['admin::isAuthenticatedAdmin'], }, }, { method: 'GET', path: '/types', handler: 'lokalise-sync.listTypes', config: { policies: ['admin::isAuthenticatedAdmin'], }, }, { method: 'POST', path: '/jobs', handler: 'lokalise-sync.startJob', config: { policies: ['admin::isAuthenticatedAdmin'], }, }, { method: 'GET', path: '/jobs/:jobId', handler: 'lokalise-sync.getJob', config: { policies: ['admin::isAuthenticatedAdmin'], }, }, { method: 'POST', path: '/jobs/:jobId/selection', handler: 'lokalise-sync.appendJobSelection', config: { policies: ['admin::isAuthenticatedAdmin'], }, }, { method: 'POST', path: '/jobs/:jobId/finalize', handler: 'lokalise-sync.finalizeJob', config: { policies: ['admin::isAuthenticatedAdmin'], }, }, { method: 'POST', path: '/jobs/:jobId/cancel', handler: 'lokalise-sync.cancelJob', config: { policies: ['admin::isAuthenticatedAdmin'], }, }, { method: 'DELETE', path: '/jobs/:jobId', handler: 'lokalise-sync.clearJob', config: { policies: ['admin::isAuthenticatedAdmin'], }, }, { method: 'POST', path: '/jobs/:jobId/batches/:batchId/run', handler: 'lokalise-sync.runBatch', config: { policies: ['admin::isAuthenticatedAdmin'], }, }, ]; // Dev-only route if (process.env.NODE_ENV !== 'production') { routes.push({ method: 'POST', path: '/slugs/dev-override', handler: 'lokalise-sync.updateSlugs', config: { policies: ['admin::isAuthenticatedAdmin'], }, }); } // Strapi v5 CORRECT Format: Export plain array (same as v4) // CRITICAL FIX: Strapi v5 requires plugin server routes to be exported as a plain array // NOT as a function returning { admin: { routes: [...] } } // The function format is ONLY for admin panel (frontend) routing, not plugin API endpoints module.exports = routes;