196 lines
4.4 KiB
PHP
196 lines
4.4 KiB
PHP
<?php
|
|
/**
|
|
* Created by PhpStorm.
|
|
* User: lucas
|
|
* Date: 27/02/18
|
|
* Time: 16:19
|
|
*/
|
|
|
|
namespace api\module;
|
|
|
|
|
|
use database\core\Repo;
|
|
use database\repo\ue;
|
|
use error\core\Error;
|
|
use error\core\Err;
|
|
|
|
class ueController{
|
|
|
|
|
|
/* (1) Returns 1 or all UEs
|
|
*
|
|
* @code<String> [OPT] The UE code
|
|
*
|
|
* @return ues<array> The UE(s) data
|
|
*
|
|
---------------------------------------------------------*/
|
|
public static function get($args){
|
|
$code = null;
|
|
extract($args);
|
|
|
|
/* Get the ue repo */
|
|
/** @var ue $ue_repo */
|
|
$ue_repo = Repo::getRepo('ue');
|
|
|
|
|
|
/* (1) Get All ues or 1 by its code (if set) */
|
|
$fetched = $ue_repo->get($code);
|
|
|
|
/* (2) Parse 'formations' from json array */
|
|
foreach($fetched as $f=>$v)
|
|
$fetched[$f]['formations'] = \json_decode($v['formations']);
|
|
|
|
/* (3) Return data */
|
|
return ['ues' => $fetched];
|
|
|
|
}
|
|
|
|
|
|
/* (2) Creates a new UE
|
|
*
|
|
* @code<String> The code of the UE
|
|
* @label<String> The UE label (name)
|
|
* @required<bool> If the UE is required
|
|
* @volumeCours<float> The UE required volume of COURSES
|
|
* @volumeTD<float> The UE required volume of TD
|
|
* @volumeTP<float> The UE required volume of TP
|
|
* @disabled<bool> [OPT] If it is disabled
|
|
* @defaultFormation<int> [OPT] If there is a foreign key for a default formation (if only one formation)
|
|
*
|
|
* @return created_code<int> The created UE code (if no error)
|
|
*
|
|
---------------------------------------------------------*/
|
|
public static function post($args){
|
|
$code = "";
|
|
$label = "";
|
|
$required = false;
|
|
$volumeCours = 0;
|
|
$volumeTD = 0;
|
|
$volumeTP = 0;
|
|
$disabled = true;
|
|
$defaultFormation = -1;
|
|
extract($args);
|
|
|
|
/* Get the ue repo */
|
|
/** @var ue $ue_repo */
|
|
$ue_repo = Repo::getRepo('ue');
|
|
|
|
/* (1) Check if ue code already exists */
|
|
$exists = $ue_repo->get($code);
|
|
|
|
/* (2) If found -> already exists */
|
|
if( count($exists) > 0 )
|
|
return ['error' => new Error(Err::AlreadyExists)];
|
|
|
|
/* (3) Else try to create */
|
|
$repo_rtn = $ue_repo->create(
|
|
$code,
|
|
$label,
|
|
$required,
|
|
$volumeCours,
|
|
$volumeTD,
|
|
$volumeTP,
|
|
$disabled,
|
|
is_int($defaultFormation) && $defaultFormation < 0 ? null : $defaultFormation
|
|
);
|
|
|
|
|
|
/* (4) If repo error -> return it */
|
|
if( is_null($repo_rtn) )
|
|
return ['error' => new Error(Err::RepoError)];
|
|
|
|
|
|
/* (5) Else return UID */
|
|
return ['created_code' => $repo_rtn];
|
|
|
|
}
|
|
|
|
|
|
/* (3) Deletes an existing UE
|
|
*
|
|
* @code<String> The UE code
|
|
*
|
|
* @return deleted<bool> Whether it has been removed
|
|
*
|
|
---------------------------------------------------------*/
|
|
public static function delete($args){
|
|
$code = '';
|
|
extract($args);
|
|
|
|
/* Get the ue repo */
|
|
/** @var ue $ue_repo */
|
|
$ue_repo = Repo::getRepo('ue');
|
|
|
|
/* (1) Try to delete */
|
|
return ['deleted' => $ue_repo->delete($code)];
|
|
|
|
}
|
|
|
|
|
|
/* (4) Edits an existing UE
|
|
*
|
|
* @code<String> The code of the UE
|
|
* @new_code<String> [OPT] The new code of the UE
|
|
* @label<String> [OPT] The UE label (name)
|
|
* @required<bool> [OPT] If the UE is required
|
|
* @volumeCours<float> [OPT] The UE required volume of COURSES
|
|
* @volumeTD<float> [OPT] The UE required volume of TD
|
|
* @volumeTP<float> [OPT] The UE required volume of TP
|
|
* @disabled<bool> [OPT] If it is disabled
|
|
* @defaultFormation<int> [OPT] default formation for this UE (-1 to unset, NULL to ignore)
|
|
*
|
|
* @return updated<bool> Whether it has been updated
|
|
*
|
|
---------------------------------------------------------*/
|
|
public static function put($args){
|
|
$code = "";
|
|
$new_code = "";
|
|
$label = "";
|
|
$required = false;
|
|
$volumeCours = 0;
|
|
$volumeTD = 0;
|
|
$volumeTP = 0;
|
|
$disabled = true;
|
|
$defaultFormation = null;
|
|
extract($args);
|
|
|
|
/* Get the ue repo */
|
|
/** @var ue $ue_repo */
|
|
$ue_repo = Repo::getRepo('ue');
|
|
|
|
|
|
|
|
/* (1) Check for @new_code to be unique (not already used)
|
|
---------------------------------------------------------*/
|
|
if( !is_null($new_code) ){
|
|
|
|
/* (1) Check @new_code */
|
|
$exists = $ue_repo->get($new_code);
|
|
|
|
/* (2) If found -> already exists */
|
|
if( count($exists) > 0 )
|
|
return ['error' => new Error(Err::AlreadyExists)];
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
/* (2) Try to update
|
|
---------------------------------------------------------*/
|
|
return ['updated' => $ue_repo->update(
|
|
$code,
|
|
$new_code,
|
|
$label,
|
|
$required,
|
|
$volumeCours,
|
|
$volumeTD,
|
|
$volumeTP,
|
|
$disabled,
|
|
$defaultFormation
|
|
)];
|
|
|
|
}
|
|
|
|
|
|
} |