efureev/response-actions

HTTP-Response 单个动作结构

v1.5.0 2023-11-30 14:30 UTC

This package is auto-updated.

Last update: 2024-08-30 01:39:46 UTC


README

动作消息响应结构

{
  // Logic data block
  "data": [],
  // Action Message block (can be overwritten)
  "_responseAction": {
    // Request Execution Status. See: \App\Shared\UI\Response\ActionMessage\Types\StatusEnum::name()
    "status": "success",
    // list of actions \App\Shared\UI\Response\ActionMessage\Actions\Action
    "actions": [
      {
        // ... some action's body
      }
    ]
  }
}

动作

  • 消息
  • 消息错误:带有代码的消息
  • 命令
  • Http命令
  • 下载
  • 事件
  • 重定向

通用动作属性

{
  // Action's Name
  "name": "message",
  // Action Order to perform. Default = 0
  "order": 1,
}

动作消息

{
  // message to show to user
  "message": "It's done!",
  // Type of the message
  "type": "info",
}
ResponseAction::successMessage('Operation has success!');

您可以使用不同类型的多个消息

ResponseAction::errorMessage('Operation has failed!')
    ->addAction(Message::info('Try to restart page'));

动作消息错误

{
  // message to show to user
  "message": "It's done!",
  // type: int|string
  "code": 321,
  "type": "error",
}

动作命令

{
  // done | failed
  "status": "failed",
  // type: string|null
  "description": "Reason..."
}

动作下载

{
  "url": "https://example.com/file.pdf",
  "name": "Readme.pdf",
}

动作事件

{
  "event": "uploadData",
  "params": [],
}

动作重定向

{
  "url": "https://example.com",
  "target": "_blank",
}

私有

您可以使用私有属性

$responseAction = ResponseAction::successMessage('Operation has done!')
    ->addAction(
        Event::make('log', ['saved!', 'continue watching...']),
        Event::make('uploadModuleData')->private(),
        Event::make('uploadData')->private('menu'),
        Event::make('refreshUser')->private('authUser')->setOrder(1),
        Redirect::make('https://example.com')->setOrder(5),
        Download::make('https://example.com/file.pdf', 'Readme.pdf')->setOrder(2),
    );

额外数据

您可以使用额外数据

$responseAction = ResponseAction::cmdDone()
    ->withExtra([]);