Files
patchy631--ai-engineering-hub/motia-content-creation/steps/api.step.py
T
2026-07-13 12:37:47 +08:00

56 lines
1.3 KiB
Python

from pydantic import BaseModel, HttpUrl
from datetime import datetime
import time
class RequestBody(BaseModel):
url: HttpUrl
class SuccessResponse(BaseModel):
message: str
requestId: str
url: str
status: str
class ErrorResponse(BaseModel):
error: str
config = {
'type': 'api',
'name': 'ContentGenerationAPI',
'description': 'Triggers content generation from article URL',
'path': '/generate-content',
'method': 'POST',
'bodySchema': RequestBody.model_json_schema(),
'responseSchema': {
200: SuccessResponse.model_json_schema(),
400: ErrorResponse.model_json_schema()
},
'emits': ['scrape-article'],
'flows': ['content-generation']
}
async def handler(req, context):
# Extract request data
url = str(req['body']['url'])
context.logger.info('🚀 Starting content generation workflow...')
await context.emit({
'topic': 'scrape-article',
'data': {
'requestId': context.trace_id,
'url': url,
'timestamp': int(time.time() * 1000)
}
})
return {
'status': 200,
'body': {
'message': 'Content generation started',
'requestId': context.trace_id,
'url': url,
'status': 'processing'
}
}