cboissenin
1/3/2017 - 4:22 PM

vrac laravel

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;
 }