vrac laravel
<?php
$value = Config::get(CARE_CONFIG_FILENAME);
'order' => $request->query('order', 'desc'),
$this->crisis->store($request->all());
/
public function all($queryParams) {
$crisis = Crisis::orderBy($queryParams['sortBy'], $queryParams['order']);
if (!empty($queryParams['where'])) {
foreach ($queryParams['where'] as $key => $value) {
if ($key === 'region' && $value === 'Any') {
continue;
}
if ($key === 'current_status' && $value === 'Any') {
continue;
}
$crisis->where($key, '=', $value);
}
}
$result = $crisis->paginate($queryParams['number']);
$data = [
'pagination' => [
'count' => $result->count(),
'total' => $result->total(),
'per_page' => $result->perPage(),
'current_page' => $result->currentPage(),
'last_page' => $result->lastPage(),
],
];
$data += fractal()
->collection($result->getCollection(), new CrisisTransformer())
->parseIncludes($queryParams['include'])
->toArray();
return $data;
}
public function destroy($id) {
$crisis = Crisis::find($id);
if (!$crisis) {
return false;
}
$crisis->sadd()->delete();
$crisis->events()->delete();
return $crisis->delete();
}
public function store($input) {
if (isset($input['status'])) {
$input['current_status'] = $input['status']['type'];
}
$crisis = Crisis::create($input);
if (isset($input['status'])) {
$crisis->status()->save(new CrisisStatus($input['status']));
}
return $crisis;
}
/**
* @param $input
* @param $id
*/
public function update($input, $id) {
$crisis = Crisis::find($id);
if (!$crisis) {
return false;
}
$crisis->fill($input);
return $crisis->save();
}
public function updateEmbedDocument($crisis_id, $id, $type, $data) {
$crisis = Crisis::find($crisis_id);
if (!$crisis) {
return false;
}
switch ($type) {
case 'response':
$response = $crisis->response;
$response->fill($data);
return $response->save();
break;
case 'phase':
$phase = $crisis->phases->where('id', $id)->first();
$phase->fill($data);
return $phase->save();
break;
case 'status':
$status = $crisis->status->where('id', $id)->first();
$status->fill($data);
return $status->save();
break;
}
return true;
}
/**
* Return a Array [id, name] of all the crisis
*/
public function fetchList() {
// @todo list my be removed in laravel 5.3, use pluck instead
return Crisis::all()->pluck('name', '_id')->toArray();
}
/**
* Get last funding data on last funding event on a given crisis
*/
public function lastFunding($crisis_id) {
$crisis = Crisis::find($crisis_id);
if (!$crisis) {
return false;
}
$event = $crisis->events()->newest()->where('category', 'Funding')->first();
if (!$event) {
return null;
}
return $event->funding;
}