public function run() { $faker = Faker::create(); $agencies = Agency::lists('id'); foreach (range(1, 50) as $index) { $job = Job::create(['agency_id' => $faker->randomElement($agencies), 'title' => $faker->sentence(), 'slug' => $faker->unique()->slug, 'client_id' => $faker->numberBetween(1, 10), 'agent_id' => $faker->numberBetween(21, 40), 'hr_id' => $faker->numberBetween(1, 10), 'is_published' => true, 'about' => $faker->paragraph(), 'salary_range_to' => $faker->numberBetween(4000, 5000), 'salary_range_from' => $faker->numberBetween(1000, 2000), 'mandate_start' => time(), 'mandate_end' => time() + 86400, 'age_range_to' => 18, 'age_range_from' => 35, 'date_of_entry' => $faker->numberBetween(time() - 100000, time() + 100000), 'contract_type_id' => $faker->numberBetween(1, 3)]); foreach (range(1, 3) as $index) { $job->skills()->attach([$faker->numberBetween(1, 6000) => ['description' => $faker->sentence(), 'level' => $faker->numberBetween(1, 100)]]); } } }
/** * List Candidates * @return \Illuminate\Http\JsonResponse */ public function index() { if (\Input::get('job_id')) { $candidates = Job::find(\Input::get('job_id'))->candidates; return $this->respondWithCollection($candidates, new CandidateTransformer()); } else { $candidates = Candidate::paginate(); return $this->respondWithCollection($candidates, new CandidateTransformer()); } }
public function addcandidates($job_id) { $user_id = Input::get('user_id'); $user = User::find($user_id); Job::findOrFail($job_id)->candidates()->attach($user); return $this->respondWithArray(['success' => true, 'message' => 'candidate added to job']); }
Route::get('jobs/{job_id}/candidates', 'JobsController@candidates'); Route::post('jobs/{job_id}/candidates', 'JobsController@addcandidates'); Route::get('jobs/{job_id}/messages', function ($jobId) { // if (Auth::user()->id !== $user1 && Auth::user()->id !== $user2) \App::abort(403, 'Unauthorized action.'); $user1 = Auth::user()->id; $user2 = \Motibu\Models\Job::find($jobId)->agent_id; $messages = \Motibu\Models\Message::with('sender')->where('job_id', '=', $jobId)->where(function ($query) use($user1, $user2) { $query->where('sender_id', '=', $user1)->where('recipient_id', '=', $user2); })->orWhere(function ($query) use($user1, $user2) { $query->where('recipient_id', '=', $user1)->where('sender_id', '=', $user2); })->get(); return Response::json($messages); }); Route::post('jobs/{job_id}/messages', function ($jobId) { $payload = \Input::get('payload'); $recipientId = \Motibu\Models\Job::find($jobId)->agent_id; $success = \Motibu\Models\Message::create(['sender_id' => Auth::user()->id, 'recipient_id' => $recipientId, 'job_id' => $jobId, 'payload' => $payload]); if ($success) { $wsClient = new Motibu\Services\WebsocketClient(); $wsClient->connect('127.0.0.1', 8081, '/'); $payload = json_encode(['type' => 'check_messages', 'userId' => $recipientId]); $wsClient->sendData($payload); } return Response::json(['success' => !!$success]); }); /** * Client Routes */ Route::get('clients', 'ClientsController@index'); Route::post('clients', 'ClientsController@create'); Route::post('clients/{client_id}/update', 'ClientsController@update');