public function _project($from, $to, $action)
{
switch ($action) {
case static::ACT_CONVERT_TO_OBJECT:
/* @var $from Farm */
if (\Scalr::config('scalr.analytics.enabled')) {
$to->project = ['id' => $from->settings[FarmSetting::PROJECT_ID]];
}
break;
case static::ACT_CONVERT_TO_ENTITY:
/* @var $to Farm */
if (\Scalr::config('scalr.analytics.enabled')) {
$projectId = ApiController::getBareId($from, 'project');
if (!isset($projectId)) {
throw new ApiErrorException(400, ErrorMessage::ERR_INVALID_STRUCTURE, "Missed project.id property");
}
$to->settings[FarmSetting::PROJECT_ID] = $projectId;
}
break;
case static::ACT_GET_FILTER_CRITERIA:
$farm = new Farm();
$farmSetting = new FarmSetting();
$projectId = ApiController::getBareId($from, 'project');
return [AbstractEntity::STMT_FROM => "\n JOIN {$farmSetting->table('fsp')} ON {$farmSetting->columnFarmId('fsp')} = {$farm->columnId()}\n AND {$farmSetting->columnName('fsp')} = " . $farmSetting->qstr('name', FarmSetting::PROJECT_ID) . "\n ", AbstractEntity::STMT_WHERE => "{$farmSetting->columnValue('fsp')} = " . $farmSetting->qstr('value', $projectId)];
break;
}
}