/**
  * 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);
 }