NotificationResource.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. namespace App\Http\Resources;
  3. use Illuminate\Http\Resources\Json\JsonResource;
  4. use App\Http\Api\UserApi;
  5. use App\Models\SentPr;
  6. class NotificationResource extends JsonResource
  7. {
  8. /**
  9. * Transform the resource into an array.
  10. *
  11. * @param \Illuminate\Http\Request $request
  12. * @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
  13. */
  14. public function toArray($request)
  15. {
  16. $data = [
  17. "id"=>$this->id,
  18. "from"=> UserApi::getByUuid($this->from),
  19. "to"=> UserApi::getByUuid($this->to),
  20. "url"=> $this->url,
  21. "content"=> $this->content,
  22. "content_type"=> $this->content_type,
  23. "res_type"=> $this->res_type,
  24. "res_id"=> $this->res_id,
  25. "status"=> $this->status,
  26. "created_at"=> $this->created_at,
  27. "updated_at"=> $this->updated_at,
  28. ];
  29. switch ($this->res_type) {
  30. case 'suggestion':
  31. $prData = SentPr::where('uid',$this->res_id)->first();
  32. if($prData){
  33. $link = config('app.url')."/pcd/article/para/{$prData->book_id}-{$prData->paragraph}";
  34. $link .= "?book={$prData->book_id}&par={$prData->paragraph}&channel={$prData->channel_uid}";
  35. $link .= "&mode=edit&pr=".$this->res_id;
  36. $data['url'] = $link;
  37. }
  38. break;
  39. default:
  40. # code...
  41. break;
  42. }
  43. return $data;
  44. }
  45. }