public function delete($id)
 {
     $charity = Charity::findOrFail($id);
     $charity->delete();
     $this->flasher->success('Charity Deleted', 'The charity has been deleted fro the system');
     return redirect('admin/charities');
 }
 public function getInvolved()
 {
     $page = $this->contentRepository->getPageByName('get involved');
     $sponsors = Sponsor::ordered()->get();
     $charities = Charity::ordered()->get();
     $expeditionistPdf = FileResource::where('name', 'Become an expeditionist')->first();
     $volunteerPdf = FileResource::where('name', 'Become a volunteer')->first();
     return view('front.pages.getinvolved')->with(compact('page', 'sponsors', 'charities', 'expeditionistPdf', 'volunteerPdf'));
 }
 /**
  *@test
  */
 public function charities_can_be_ordered_by_passing_an_ordered_list_of_ids()
 {
     factory(Charity::class)->create(['name' => 'second', 'id' => 1]);
     factory(Charity::class)->create(['name' => 'first', 'id' => 2]);
     factory(Charity::class)->create(['name' => 'fourth', 'id' => 3]);
     factory(Charity::class)->create(['name' => 'third', 'id' => 4]);
     Charity::setOrder([2, 1, 4, 3]);
     $ordered = Charity::ordered()->get();
     $this->assertEquals('first', $ordered->first()->name);
     $this->assertEquals('second', $ordered[1]->name);
     $this->assertEquals('third', $ordered[2]->name);
     $this->assertEquals('fourth', $ordered->last()->name);
 }
 /**
  *@test
  */
 public function charities_can_be_ordered_by_posting_to_an_endpoint()
 {
     factory(Charity::class)->create(['name' => 'second', 'id' => 1]);
     factory(Charity::class)->create(['name' => 'first', 'id' => 2]);
     factory(Charity::class)->create(['name' => 'fourth', 'id' => 3]);
     factory(Charity::class)->create(['name' => 'third', 'id' => 4]);
     $this->asAnAdminUser();
     $this->withoutMiddleware();
     $response = $this->call('POST', '/admin/charities/order', ['order' => [2, 1, 4, 3]]);
     $this->assertEquals(200, $response->status());
     $ordered = Charity::ordered()->get();
     $this->assertEquals('first', $ordered->first()->name);
     $this->assertEquals('second', $ordered[1]->name);
     $this->assertEquals('third', $ordered[2]->name);
     $this->assertEquals('fourth', $ordered->last()->name);
 }
 public function editCharities($id)
 {
     $expedition = Expedition::findOrFail($id);
     $charities = Charity::all();
     return view('admin.expeditions.charities')->with(compact('expedition', 'charities'));
 }
 public function update(Request $request)
 {
     $this->validate($request, ['order' => 'required']);
     Charity::setOrder($request->order);
     return response()->json('ok');
 }
 protected function getCharities()
 {
     return Cache::remember('home:charities', static::CACHE_DURATION, function () {
         return Charity::ordered()->get();
     });
 }