/** * Method to handle posting support/oppose clicks on a document. * * @param int $doc * * @return json array */ public function postSupport($doc) { $input = Input::get(); $supported = (bool) $input['support']; $docMeta = DocMeta::withTrashed()->where('user_id', Auth::user()->id)->where('meta_key', '=', 'support')->where('doc_id', '=', $doc)->first(); if (!isset($docMeta)) { $docMeta = new DocMeta(); $docMeta->doc_id = $doc; $docMeta->user_id = Auth::user()->id; $docMeta->meta_key = 'support'; $docMeta->meta_value = (string) $supported; $docMeta->save(); } elseif ($docMeta->meta_value == (string) $supported && !$docMeta->trashed()) { $docMeta->delete(); $supported = null; } else { if ($docMeta->trashed()) { $docMeta->restore(); } $docMeta->doc_id = $doc; $docMeta->user_id = Auth::user()->id; $docMeta->meta_key = 'support'; $docMeta->meta_value = (string) (bool) $input['support']; $docMeta->save(); } $supports = DocMeta::where('meta_key', '=', 'support')->where('meta_value', '=', '1')->where('doc_id', '=', $doc)->count(); $opposes = DocMeta::where('meta_key', '=', 'support')->where('meta_value', '=', '')->where('doc_id', '=', $doc)->count(); return Response::json(array('support' => $supported, 'supports' => $supports, 'opposes' => $opposes)); }
public function getRestoreDoc($docId) { $doc = Doc::withTrashed()->find($docId); if ($doc->publish_state == Doc::PUBLISH_STATE_DELETED_ADMIN) { if (!Auth::user()->hasRole('admin')) { return Response('Unauthorized.', 403); } } if (!$doc->canUserEdit(Auth::user())) { return Response('Unauthorized.', 403); } DocMeta::withTrashed()->where('doc_id', $docId)->restore(); DocContent::withTrashed()->where('doc_id', $docId)->restore(); Annotation::withTrashed()->where('doc_id', $docId)->restore(); Comment::withTrashed()->where('doc_id', $docId)->restore(); $doc->restore(); $doc->publish_state = Doc::PUBLISH_STATE_UNPUBLISHED; $doc->save(); return Response::json($doc); }