/** * Run the database seeds. * * @return void */ public function run() { $text_response_type = new ResponseType(); $text_response_type->name = 'text'; $text_response_type->save(); $image_response_type = new ResponseType(); $image_response_type->name = 'image'; $image_response_type->save(); $video_response_type = new ResponseType(); $video_response_type->name = 'video'; $video_response_type->save(); $link_response_type = new ResponseType(); $link_response_type->name = 'link'; $link_response_type->save(); }
/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $this->validate($request, ['content' => 'required_if:type,text|string|min:1|max:2000', 'url' => 'required_if:type,video,link|url', 'type' => 'required|in:text,image,video,link']); $content = $request->input('content'); $response_type = ResponseType::where('name', $request->input('type'))->first(); $response = new Response(); $response->content = $response_type->requiresContent() ? null : $content; $response->url = ResponseHelper::getUrl($response_type, $request); $response->response_type_id = $response_type->id; $response->save(); return response(['response' => $response], 201)->header('Location', '/api/responses/' . $response->id); }