class APIController extends BaseController

This class deals with the API function of the simulation engine.

For a simulator to accept an API request, the following parameters must be defined in the "parameters.yml" file:

   api:
        <simulator name>:
         step: <step number>
         action: <action button name>

the API conforms to the JSON API

Properties

ControllersHelper $helper from BaseController
Simulator $simu from BaseController
protected Parser $parser from BaseController
protected bool $error from BaseController
protected int $recursion from BaseController
protected array $simuWidgets from BaseController
protected array $variables from BaseController
protected array $memo from BaseController
protected mixed|null $sources from BaseController
protected array $log from BaseController
protected int $script from BaseController
protected array $sequence from BaseController
protected string $path from BaseController
array $uricache from BaseController
string $databasesDir from BaseController
string $simulatorsDir from BaseController
string $publicDir from BaseController
string $viewsDir from BaseController
private array $datas
private array $metas
private array $errors

Methods

Response|Step|null
runStep(Request $request, array $form, string $simu, string $view, bool $test)

Run the simulation engine for a step

void
addWidget(string $widget)

Adds a widget to the list of widgets

void
widgetDeps(string $widget, array $widgets, array $availWidgets)

Adds widgets that depend on a widget in the list of widgets

Response
runFields(Request $request, string $simu, bool $test = false)

Returns the simulators attributes in JSON response format

Response
runSource(Request $request, string $simu, bool $test = false)

Returns the requested source attributes in JSON response format

string
getSimuPath(string $simu, bool $test = false)

Get the simulators directory

void
checkField(Field $field, array $form, bool $skipValidation)

Checks the given field

void
processField(Field $field, Step $step, bool $displayable)

Processes the given field for the step

void
replaceFieldNotes(Field $field)

Replaces data values in the notes of a field

string|false
evaluate(string $condition)

Evaluates a condition with the expression parser

void
evaluateDefault(Data $data)

Evaluates the default value of the given data

void
evaluateDefaults()

Evaluates the default value of all data

void
evaluateMin(Data $data)

Evaluates the minimum value of the given data

void
evaluateMax(Data $data)

Evaluates the maximum value of the given data

void
evaluateMinMax()

Evaluates the minimum and the maximum value of all data

void
processData(Data $data, int $istep)

Processes the given data for the step

void
processActions(Action $actions, int $istep)

Executes all the actions of a business rule of the step

void
processRule(BusinessRule $businessrule, int $istep)

Evaluates the conditions of a business rule an executes the suitable actions

void
processRules(int $istep)

Evaluates the conditions of all business rules an executes the suitable actions

void
processDatas(int $istep)

Processes all data for the step

Response|Step
calculAction(Request $request, Simulator $simu)

The entry point of the API request

Response|Step
tryItAction(Request $request, Simulator $simu)

The entry point of the API request in test mode

Response|Step
runCalcul(Request $request, Simulator $simu, bool $test = false)

Run the simulation engine

Response
apiOutput(Request $request, array $form, Step $step)

Composes the API response

void
processApiField(array $form, Field $field)

Processes the API field

void
processApiFieldData(array $form, Data $data)

Processes the API field data

void
addResponseError(array $form, Data $data)

Add response error

void
addParameterError(string $parameter, string $title, string $detail)

Composes a parameter error

void
addEntityError(string $entity, string $title, string $detail)

Composes an entity error

Details

in BaseController at line 219
protected Response|Step|null runStep(Request $request, array $form, string $simu, string $view, bool $test)

Run the simulation engine for a step

Parameters

Request $request the active request
array $form The form fields
string $simu The simulator name
string $view &$view The view name
bool $test true if it is a test from the administration module, false otherwise

Return Value

Response|Step|null

in BaseController at line 510
protected void addWidget(string $widget)

Adds a widget to the list of widgets

Parameters

string $widget The widget name

Return Value

void

in BaseController at line 526
protected void widgetDeps(string $widget, array $widgets, array $availWidgets)

Adds widgets that depend on a widget in the list of widgets

Parameters

string $widget The widget name
array $widgets &$widgets the list of widgets
array $availWidgets &$availWidgets the list of available widgets

Return Value

void

in BaseController at line 547
protected Response runFields(Request $request, string $simu, bool $test = false)

Returns the simulators attributes in JSON response format

Parameters

Request $request the active request
string $simu The simulator name
bool $test (default: false) true if it is a test from the administration module, false otherwise

Return Value

Response

in BaseController at line 568
protected Response runSource(Request $request, string $simu, bool $test = false)

Returns the requested source attributes in JSON response format

Parameters

Request $request the active request
string $simu The simulator name
bool $test (default: false) true if it is a test from the administration module, false otherwise

Return Value

Response

in BaseController at line 614
protected string getSimuPath(string $simu, bool $test = false)

Get the simulators directory

Parameters

string $simu The simulator name
bool $test (default: false) true if it is a test from the administration module, false otherwise

Return Value

string the simulators directory

in BaseController at line 642
protected void checkField(Field $field, array $form, bool $skipValidation)

Checks the given field

Parameters

Field $field
array $form The form fields
bool $skipValidation

Return Value

void

in BaseController at line 702
protected void processField(Field $field, Step $step, bool $displayable)

Processes the given field for the step

Parameters

Field $field
Step $step
bool $displayable &$displayable

Return Value

void

in BaseController at line 752
protected void replaceFieldNotes(Field $field)

Replaces data values in the notes of a field

Parameters

Field $field

Return Value

void

in BaseController at line 772
protected string|false evaluate(string $condition)

Evaluates a condition with the expression parser

Parameters

string $condition The condition to evaluate

Return Value

string|false Result of the evaluation

in BaseController at line 788
protected void evaluateDefault(Data $data)

Evaluates the default value of the given data

Parameters

Data $data

Return Value

void

in BaseController at line 807
protected void evaluateDefaults()

Evaluates the default value of all data

Return Value

void

in BaseController at line 829
protected void evaluateMin(Data $data)

Evaluates the minimum value of the given data

Parameters

Data $data

Return Value

void

in BaseController at line 851
protected void evaluateMax(Data $data)

Evaluates the maximum value of the given data

Parameters

Data $data

Return Value

void

in BaseController at line 872
protected void evaluateMinMax()

Evaluates the minimum and the maximum value of all data

Return Value

void

in BaseController at line 896
protected void processData(Data $data, int $istep)

Processes the given data for the step

Parameters

Data $data
int $istep The step number

Return Value

void

in BaseController at line 995
protected void processActions(Action $actions, int $istep)

Executes all the actions of a business rule of the step

Parameters

Action $actions Actions of the business rule
int $istep The step number

Return Value

void

in BaseController at line 1195
protected void processRule(BusinessRule $businessrule, int $istep)

Evaluates the conditions of a business rule an executes the suitable actions

Parameters

BusinessRule $businessrule The rule to be processed
int $istep The step number

Return Value

void

in BaseController at line 1214
protected void processRules(int $istep)

Evaluates the conditions of all business rules an executes the suitable actions

Parameters

int $istep The step number

Return Value

void

in BaseController at line 1230
protected void processDatas(int $istep)

Processes all data for the step

Parameters

int $istep The step number

Return Value

void

at line 98
Response|Step calculAction(Request $request, Simulator $simu)

The entry point of the API request

Parameters

Request $request The user request
Simulator $simu The simulator object

Return Value

Response|Step The simulation step object or the API response object in JSON format

at line 112
Response|Step tryItAction(Request $request, Simulator $simu)

The entry point of the API request in test mode

Parameters

Request $request The user request
Simulator $simu The simulator object

Return Value

Response|Step The simulation step object or the API response object in JSON format

at line 127
protected Response|Step runCalcul(Request $request, Simulator $simu, bool $test = false)

Run the simulation engine

Parameters

Request $request The user request
Simulator $simu The simulator object
bool $test (default: false) if true, we are in test mode

Return Value

Response|Step The simulation step object or the API response object in JSON format

at line 161
protected Response apiOutput(Request $request, array $form, Step $step)

Composes the API response

Parameters

Request $request The user request
array $form array of request parameters
Step $step The simulation step object

Return Value

Response The API response object in JSON format

at line 290
private void processApiField(array $form, Field $field)

Processes the API field

Parameters

array $form array of request parameters
Field $field The field object

Return Value

void

at line 316
private void processApiFieldData(array $form, Data $data)

Processes the API field data

Parameters

array $form array of request parameters
Data $data The data object

Return Value

void

at line 333
private void addResponseError(array $form, Data $data)

Add response error

Parameters

array $form array of request parameters
Data $data The data object

Return Value

void

at line 360
private void addParameterError(string $parameter, string $title, string $detail)

Composes a parameter error

Parameters

string $parameter the parameter name
string $title Title of the error
string $detail Detail of the error

Return Value

void

at line 382
private void addEntityError(string $entity, string $title, string $detail)

Composes an entity error

Parameters

string $entity the entity name
string $title Title of the error
string $detail Detail of the error

Return Value

void