Skip to content

Convert SEO Routes to Ability Delegation #2

@chubes4

Description

@chubes4

Summary

Convert all SEO-related REST routes to delegate to extrachill-seo plugin abilities instead of containing business logic directly.

Current State

  • SEO routes contain embedded business logic for audits, analysis, and configuration
  • Direct calls to SEO functions throughout route handlers
  • No delegation to Abilities API

Routes to Convert

  • POST /wp-json/extrachill/v1/seo/audit → delegate to extrachill/run-seo-audit ability
  • GET /wp-json/extrachill/v1/seo/status → delegate to extrachill/get-seo-results ability
  • GET /wp-json/extrachill/v1/seo/config → delegate to extrachill/get-seo-config ability
  • PUT /wp-json/extrachill/v1/seo/config → delegate to extrachill/update-seo-config ability
  • POST /wp-json/extrachill/v1/seo/continue → delegate to extrachill/run-seo-audit (batch mode)
  • POST /wp-json/extrachill/v1/seo/details → delegate to extrachill/analyze-url ability

Implementation Pattern

function extrachill_api_seo_audit_handler($request) {
    $input = extrachill_api_rest_to_ability_input($request, [
        'mode' => 'mode',
        'blog_id' => 'blog_id', 
        'checks' => 'checks'
    ]);
    
    $result = wp_execute_ability('extrachill/run-seo-audit', $input);
    return extrachill_api_ability_to_rest_response($result);
}

Success Criteria

  • All SEO REST endpoints maintain exact same external interface
  • Business logic removed from API plugin and delegated to extrachill-seo abilities
  • Backward compatibility maintained for existing consumers
  • Performance improved by removing business logic from API layer

Dependencies

  • Requires completion of "Add Ability Delegation Wrapper Infrastructure" issue
  • extrachill-seo plugin abilities already implemented and available

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions