Skip to content

Commit

Permalink
[bus] limits to 10 last localization per bus
Browse files Browse the repository at this point in the history
  • Loading branch information
LaercioSantana committed Jul 8, 2016
1 parent dfed996 commit 6f25056
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 3 deletions.
4 changes: 2 additions & 2 deletions application/controllers/Bus.php
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,7 @@ function getLocalizations($idRoute, $idBus){
return $this->makeJsonRespose($lastLocalizations, 200);
}
/**
* @api {post} /routes/:idRoute/buses/:idBus/position Adicionar uma localização a um ônibus
* @api {post} /routes/:idRoute/buses/:idBus/positions Adicionar uma localização a um ônibus
* @apiName PostPosition
* @apiGroup Bus
* @apiPermission tracker
Expand Down Expand Up @@ -256,7 +256,7 @@ function getLocalizations($idRoute, $idBus){
* @apiParamExample {json} Exemplo de requisição:
* {
* "latitude": 3.2921,
* "longitude": -3.23123,
* "longitude": -3.23123
* }
*
* @apiErrorExample {json} Exemplo de respota com erro no json da requisição :
Expand Down
22 changes: 21 additions & 1 deletion application/models/Bus_model.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ class Bus_model extends CI_Model{
public $name;
public $description;
const table = 'bus';
const lastLocalizationsTable = 'last_localizations';
const lastLocalizationsTable = 'last_localizations';
const MAX_LOCALIZATIONS_PER_BUS = 10;

public function __construct(){
parent::__construct();
Expand Down Expand Up @@ -41,8 +42,27 @@ public function insertLocalization($idRoute, $idBus, $input){
$localization->date = date('Y-m-d H:i:s');
$this->db->insert(self::lastLocalizationsTable, $localization);


$localizationsCount = count(
$this->db->select("*")
->from(self::lastLocalizationsTable)
->where("id_bus = {$idBus}")
->get()->result()
);

if($localizationsCount > self::MAX_LOCALIZATIONS_PER_BUS)
$this->popLastLocalizations($idRoute, $idBus);

return $localization->date;
}
private function popLastLocalizations($idRoute, $idBus){
$r = $this->db->select("*")
->from(self::lastLocalizationsTable)
->where("id_bus = {$idBus}")
->order_by("date", "asc")
->limit(1,0)->delete();
echo json_encode($r);
}
public function insertBus($idRoute, $bus){
$busData = new stdClass();
$busData->id_routes = $idRoute;
Expand Down

0 comments on commit 6f25056

Please sign in to comment.