SMMP/build/api/module/fetchDefault.php

172 lines
4.0 KiB
PHP

<?php
namespace api\module;
use \database\core\DatabaseDriver;
use \manager\sessionManager;
use \error\core\Error;
use \error\core\Err;
use \database\core\Repo;
use \api\core\Request;
class fetchDefault{
public function __construct(){}
public function __destruct(){}
/* [0] Dispatch des données d'une feature d'une machine
*
* @etree<String> Nom (complet) de l'e-tree
* @data<mixed> Données à traiter
*
* @return saved<numeric> Code de réception (nombre d'entrées ou autre)
*
=========================================================*/
public function dispatch($params){
extract($params);
/* (1) On parse le nom complet
---------------------------------------------------------*/
/* (1) Requête */
$etree_parse_req = new Repo('etree/parse', [$etree]);
/* (2) On récupère la réponse */
$etree_data = $etree_parse_req->answer();
/* (3) Gestion erreur */
if( $etree_data === false )
return ['error' => new Error(Err::FormatError)];
/* (4) On calcule le nom de la méthode */
$method_name = $etree_data['module_name'].'_'.$etree_data['etree_name'];
/* (2) Gestion du dispatch
---------------------------------------------------------*/
/* (1) Formulation requête */
$request = new Request("fetchDefault/$method_name", [
'data' => $data
]);
/* (2) Gestion erreur */
if( $request->error->get() != Err::Success )
return ['error' => new Error(Err::ModuleError)];
/* (3) Exécution */
$response = $request->dispatch();
/* (4) Gestion erreur */
if( $response->error->get() != Err::Success )
return [ 'saved' => 0 ];
/* (5) Remontée du résultat */
return [
'saved' => $response->get('saved')
];
}
/* [1] Gestion des données historiques de l'etree READ du module RFID
*
* @data<mixed> Données à traiter
*
* @return saved<numeric> Nombre de lignes ajoutées
*
=========================================================*/
public function rfid_read($params){
extract($params);
/* (1) Initialisation du compteur de lignes enregistrées */
$count = 0;
/* (2) Create history entry in db */
foreach($data as $entry){
// {1} Build request to store each entry //
$log_req = new Request('historyDefault/create', [
'timestamp' => $entry[0],
'id_user' => $entry[1],
'id_action' => $entry[2],
'id_machine' => $_SESSION['SATS']['id']
]);
// {2} Process + get response //
$log_res = $log_req->dispatch();
// {3} Ignore failure //
// if( $log_res->error->get() != Err::Success )
// continue;
// {4} Register count if success //
$count++;
}
/* (3) Retourne le nombre d'entrées enregistrées */
return [ 'saved' => $count ];
}
/* [2] Gestion des données historiques de l'etree SIMPLE du module MOTHEURE
*
* @data<mixed> Données à traiter
*
* @return saved<numeric> Nombre de lignes ajoutées
*
=========================================================*/
public function motheure_simple($params){
extract($params);
/* (1) Initialize data
---------------------------------------------------------*/
/* (1) Initialisation du compteur de lignes enregistrées */
$count = 0;
/* (2) Calcl the total to add */
$total = 0;
foreach($data as $entry){
// Only if positive numeric
if( is_numeric($entry) && $entry > 0 )
$total += intval($entry);
$count++;
}
/* (2) Update the table in the database
---------------------------------------------------------*/
/* (1) Build request to store each entry */
$upd_req = new Request('motheure/increment', [
'count' => $total
]);
/* (2) Process + get response */
$upd_res = $upd_req->dispatch();
/* (3) Manage error */
if( $upd_res->error->get() != Err::Success )
return ['error' => $upd_res->error];
/* (4) Retourne le nombre d'entrées enregistrées */
return [ 'saved' => $count ];
}
}
?>