strapi-to-lokalise-plugin
Version:
Preview and sync Lokalise translations from Strapi admin
158 lines (155 loc) • 3.47 kB
JavaScript
'use strict';
// Strapi v4 Routes - Array Format
// Official format: module.exports = [{ method, path, handler, config }]
// Uses policies for authentication
// Official docs: https://docs.strapi.io/dev-docs/plugins/server/policies
//
// IMPORTANT: Strapi v4 does NOT support { type: 'admin', routes: [...] }
// That format is v5-only. v4 expects plain array of route objects.
module.exports = [
{
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
...(process.env.NODE_ENV !== 'production' ? [{
method: 'POST',
path: '/slugs/dev-override',
handler: 'lokalise-sync.updateSlugs',
config: {
policies: ['admin::isAuthenticatedAdmin'],
},
}] : []),
];