mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-02-01 20:23:36 +00:00
Implement settings service and routes for file-based settings management
- Add SettingsService to handle reading/writing global and project settings. - Introduce API routes for managing settings, including global settings, credentials, and project-specific settings. - Implement migration functionality to transfer settings from localStorage to file-based storage. - Create common utilities for settings routes and integrate logging for error handling. - Update server entry point to include new settings routes.
This commit is contained in:
38
apps/server/src/routes/settings/index.ts
Normal file
38
apps/server/src/routes/settings/index.ts
Normal file
@@ -0,0 +1,38 @@
|
||||
/**
|
||||
* Settings routes - HTTP API for persistent file-based settings
|
||||
*/
|
||||
|
||||
import { Router } from "express";
|
||||
import type { SettingsService } from "../../services/settings-service.js";
|
||||
import { createGetGlobalHandler } from "./routes/get-global.js";
|
||||
import { createUpdateGlobalHandler } from "./routes/update-global.js";
|
||||
import { createGetCredentialsHandler } from "./routes/get-credentials.js";
|
||||
import { createUpdateCredentialsHandler } from "./routes/update-credentials.js";
|
||||
import { createGetProjectHandler } from "./routes/get-project.js";
|
||||
import { createUpdateProjectHandler } from "./routes/update-project.js";
|
||||
import { createMigrateHandler } from "./routes/migrate.js";
|
||||
import { createStatusHandler } from "./routes/status.js";
|
||||
|
||||
export function createSettingsRoutes(settingsService: SettingsService): Router {
|
||||
const router = Router();
|
||||
|
||||
// Status endpoint (check if migration needed)
|
||||
router.get("/status", createStatusHandler(settingsService));
|
||||
|
||||
// Global settings
|
||||
router.get("/global", createGetGlobalHandler(settingsService));
|
||||
router.put("/global", createUpdateGlobalHandler(settingsService));
|
||||
|
||||
// Credentials (separate for security)
|
||||
router.get("/credentials", createGetCredentialsHandler(settingsService));
|
||||
router.put("/credentials", createUpdateCredentialsHandler(settingsService));
|
||||
|
||||
// Project settings
|
||||
router.post("/project", createGetProjectHandler(settingsService));
|
||||
router.put("/project", createUpdateProjectHandler(settingsService));
|
||||
|
||||
// Migration from localStorage
|
||||
router.post("/migrate", createMigrateHandler(settingsService));
|
||||
|
||||
return router;
|
||||
}
|
||||
Reference in New Issue
Block a user