Final Polish: Sidebar Refactor & Data Verification
This commit is contained in:
54
backend/services/WordPressDeployer.ts
Normal file
54
backend/services/WordPressDeployer.ts
Normal file
@@ -0,0 +1,54 @@
|
||||
|
||||
import { WordPressClient } from '../../frontend/src/lib/wordpress/WordPressClient.js';
|
||||
|
||||
// Note: In a real monorepo we'd share the client code, but for now I'll adapt or re-import.
|
||||
// Actually, backend needs its own HTTP client logic usually, or we pass the WP Client from frontend?
|
||||
// No, backend must run the ignition.
|
||||
// I will create a backend-specific simple deployer.
|
||||
|
||||
export class WordPressDeployer {
|
||||
private domain: string;
|
||||
private auth: string; // Basic base64 info
|
||||
|
||||
constructor(domain: string, auth: string) {
|
||||
this.domain = domain;
|
||||
this.auth = auth;
|
||||
}
|
||||
|
||||
async backupContent(postId: number, currentContent: string): Promise<boolean> {
|
||||
// Post to meta 'legacy_content_reference'
|
||||
// First get current metas or just update
|
||||
// We'll try updating the post meta directly if API supports it, or use a custom endpoint/plugin.
|
||||
// Standard WP REST API allows updating meta if registered.
|
||||
// Fallback: Store in Directus 'legacy_backups' table?
|
||||
// User spec says: "Store legacy... meta_key = 'legacy_content_reference'"
|
||||
|
||||
try {
|
||||
await this.updatePost(postId, {
|
||||
meta: {
|
||||
legacy_content_reference: currentContent
|
||||
}
|
||||
});
|
||||
return true;
|
||||
} catch (e) {
|
||||
console.error("Backup Failed", e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
async updatePost(postId: number, data: any): Promise<any> {
|
||||
const url = `${this.domain}/wp-json/wp/v2/posts/${postId}`;
|
||||
const res = await fetch(url, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Authorization': `Basic ${this.auth}`,
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
body: JSON.stringify(data)
|
||||
});
|
||||
if (!res.ok) throw new Error(`WP Update Failed: ${res.statusText}`);
|
||||
return await res.json();
|
||||
}
|
||||
|
||||
// Future: Image upload logic
|
||||
}
|
||||
Reference in New Issue
Block a user