/** * @param Request $request * @param BuildcraftApiManager $buildcraftApiManager * @param Guard $guard * @param CollectionUserVote $collectionUserVote * * @return \Illuminate\Http\JsonResponse */ public function voteOnCollection(Request $request, BuildcraftApiManager $buildcraftApiManager, Guard $guard, CollectionUserVote $collectionUserVote) { $userId = $guard->user()->getAuthIdentifier(); $input = $request->all(); $errors = false; $data = null; $success = true; $collectionHasVote = $collectionUserVote->where('user_id', $userId)->where('collection_id', $input['collectionId'])->first(); if (null === $collectionHasVote) { if ($input['voteType'] == 'upvote') { $collectionUserVote->insert(['collection_id' => $input['collectionId'], 'user_id' => $userId, 'vote' => 1]); $data['vote'] = 1; } else { $collectionUserVote->insert(['collection_id' => $input['collectionId'], 'user_id' => $userId, 'vote' => -1]); $data['vote'] = -1; } return $buildcraftApiManager->setCode(200)->setDataErrors($errors)->setDataData($data)->setDataSuccess($success)->responseJson($buildcraftApiManager->getData()); } if ($input['voteType'] == 'upvote') { if ($collectionHasVote->vote == 1) { $errors = ['upvoteAlreadyExists' => true]; $success = false; } elseif ($collectionHasVote->vote == 0) { $collectionHasVote->update(['vote' => 1]); $data['vote'] = 1; } else { $collectionHasVote->update(['vote' => 0]); $data['vote'] = 0; } } else { if ($collectionHasVote->vote == -1) { $errors = ['downvoteAlreadyExists' => true]; $success = false; } elseif ($collectionHasVote->vote == 0) { $collectionHasVote->update(['vote' => -1]); $data['vote'] = -1; } else { $collectionHasVote->update(['vote' => 0]); $data['vote'] = 0; } } return $buildcraftApiManager->setCode(200)->setDataErrors($errors)->setDataData($data)->setDataSuccess($success)->responseJson($buildcraftApiManager->getData()); }
/** * @param $archiveName * @param BuildcraftApiManager $buildcraftApiManager * @param PathBuilder $pathBuilder * * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View|\Symfony\Component\HttpFoundation\BinaryFileResponse */ public function download($archiveName, BuildcraftApiManager $buildcraftApiManager, PathBuilder $pathBuilder) { return $buildcraftApiManager->responseBinary($archiveName, $pathBuilder); }