Ejemplo n.º 1
0
 public function actionCreate()
 {
     switch ($_GET['model']) {
         // Get an instance of the respective model
         case 'Contacts':
             $model = new Contacts();
             $this->modelClass = "Contacts";
             $temp = $model->attributes;
             break;
         case 'Actions':
             $model = new Actions();
             $this->modelClass = "Actions";
             $temp = $model->attributes;
             break;
         case 'Accounts':
             $model = new Accounts();
             $this->modelClass = "Accounts";
             $temp = $model->attributes;
             break;
         default:
             $this->_sendResponse(501, sprintf('Mode <b>create</b> is not implemented for model <b>%s</b>', $_GET['model']));
             exit;
     }
     // Try to assign POST values to attributes
     foreach ($_POST as $var => $value) {
         // Does the model have this attribute? If not raise an error
         if ($model->hasAttribute($var)) {
             $model->{$var} = $value;
         }
     }
     switch ($_GET['model']) {
         // Get an instance of the respective model
         case 'Contacts':
             Yii::import("application.modules.contacts.controllers.DefaultController");
             $controller = new DefaultController('DefaultController');
             if ($controller->create($model, $temp, '1')) {
                 $this->_sendResponse(200, sprintf('Model <b>%s</b> was created with name <b>%s</b>', $_GET['model'], $model->firstName . " " . $model->lastName));
             } else {
                 // Errors occurred
                 $msg = "<h1>Error</h1>";
                 $msg .= sprintf("Couldn't create model <b>%s</b>", $_GET['model']);
                 $msg .= "<ul>";
                 foreach ($model->errors as $attribute => $attr_errors) {
                     $msg .= "<li>Attribute: {$attribute}</li>";
                     $msg .= "<ul>";
                     foreach ($attr_errors as $attr_error) {
                         $msg .= "<li>{$attr_error}</li>";
                     }
                     $msg .= "</ul>";
                 }
                 $msg .= "</ul>";
                 $this->_sendResponse(500, $msg);
             }
             break;
         case 'Accounts':
             Yii::import("application.modules.accounts.controllers.DefaultController");
             $controller = new DefaultController('DefaultController');
             if ($controller->create($model, $temp, '1')) {
                 $this->_sendResponse(200, sprintf('Model <b>%s</b> was created with name <b>%s</b>', $_GET['model'], $model->name));
             } else {
                 // Errors occurred
                 $msg = "<h1>Error</h1>";
                 $msg .= sprintf("Couldn't create model <b>%s</b>", $_GET['model']);
                 $msg .= "<ul>";
                 foreach ($model->errors as $attribute => $attr_errors) {
                     $msg .= "<li>Attribute: {$attribute}</li>";
                     $msg .= "<ul>";
                     foreach ($attr_errors as $attr_error) {
                         $msg .= "<li>{$attr_error}</li>";
                     }
                     $msg .= "</ul>";
                 }
                 $msg .= "</ul>";
                 $this->_sendResponse(500, $msg);
             }
             break;
         case 'Actions':
             Yii::import("application.modules.actions.controllers.DefaultController");
             $controller = new DefaultController('DefaultController');
             if ($controller->create($model, $temp, '1')) {
                 $this->_sendResponse(200, sprintf('Model <b>%s</b> was created with description <b>%s</b>', $_GET['model'], $model->actionDescription));
             } else {
                 // Errors occurred
                 $msg = "<h1>Error</h1>";
                 $msg .= sprintf("Couldn't create model <b>%s</b>", $_GET['model']);
                 $msg .= "<ul>";
                 foreach ($model->errors as $attribute => $attr_errors) {
                     $msg .= "<li>Attribute: {$attribute}</li>";
                     $msg .= "<ul>";
                     foreach ($attr_errors as $attr_error) {
                         $msg .= "<li>{$attr_error}</li>";
                     }
                     $msg .= "</ul>";
                 }
                 $msg .= "</ul>";
                 $this->_sendResponse(500, $msg);
             }
             break;
         default:
             $this->_sendResponse(501, sprintf('Mode <b>create</b> is not implemented for model <b>%s</b>', $_GET['model']));
             exit;
     }
 }