/** * Store a newly created resource in storage. * * @param Request $request * @param URI int $fact_id * @return Response */ public function store(Request $request, $user_id = null, $fact_id = null) { if (!$request->input('tag_name')) { return $this->respondUnprocessed(); } $fact = Fact::find($fact_id); if ($user_id) { $authUser = Auth::ID(); if ($authUser != $user_id) { return $this->respondForbidden("Unauthorized: Must be logged to access endpoint"); } if ($fact->user_id != $user_id) { return $this->respondForbidden("Unauthorized: Verify you still have access to resource"); } } if (!$fact) { return $this->respondNotFound("Fact Not found"); } else { $tag_name = $request->input('tag_name'); $tag = Tag::firstOrCreate(['tag_name' => $tag_name]); if ($tag) { TaggedFact::create(['fact_id' => $fact_id, 'tag_id' => $tag->id]); $metadata = ['tag_id' => $tag->id]; return $this->respondCreated("Request Successful", $metadata); } else { return $this->respondUnprocessed("Unable to tag the fact"); } } }
/** * @param $user */ public function tagMockFacts($user) { // create two tags $tag_id = Tag::create(['tag_name' => 'Test Tag1'])->id; $tag_id2 = Tag::create(['tag_name' => 'Test Tag2'])->id; $facts = Fact::where('user_id', $user->id)->get(); foreach ($facts as $fact) { // Basically a 50/50 coin flip whether a tag is going to get tag 1 or tag 2 rand(0, 1) ? \App\Models\TaggedFact::create(['fact_id' => $fact->id, 'tag_id' => $tag_id]) : \App\Models\TaggedFact::create(['fact_id' => $fact->id, 'tag_id' => $tag_id2]); } }