GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Push — master ( 951ad1...29ba67 )
by Alexey
08:55
created

BRelatedActionDelete::run()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 12
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 9
CRAP Score 3

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 12
ccs 9
cts 9
cp 1
rs 9.4285
cc 3
eloc 7
nc 3
nop 0
crap 3
1
<?php
2
/**
3
 * @author Sergey Glagolev <[email protected]>
4
 * @link https://github.com/shogodev/argilla/
5
 * @copyright Copyright &copy; 2003-2014 Shogo
6
 * @license http://argilla.ru/LICENSE
7
 * @package backend.components.actions
8
 */
9
class BRelatedActionDelete extends CAction
10
{
11 2
  public function run()
12
  {
13 2
    if( Yii::app()->request->isAjaxRequest )
14 2
    {
15 1
      $result = $this->tryDelete();
16
17 1
      if( !$result )
18 1
        throw new CHttpException(500, 'Не могу удалить запись.');
19 1
    }
20
    else
21 1
      throw new CHttpException(500, 'Некорректный запрос.');
22 1
  }
23
24 1
  private function tryDelete()
25
  {
26 1
    $id = Yii::app()->request->getPost('id');
27 1
    $relation = Yii::app()->request->getPost('relation');
28
29
    /**
30
     * @var BActiveRecord $model
31
     * @var BActiveRecord $relatedModel
32
     */
33 1
    $model = new $this->controller->modelClass;
34 1
    $className = $model->getActiveRelation($relation)->className;
35 1
    $relatedModel = $className::model()->findByPk($id);
36
37
    try
38
    {
39 1
      $result = $relatedModel->delete();
40
    }
41 1
    catch(CDbException $e)
42
    {
43
      if( strpos($e->getMessage(), 'update a parent row: a foreign key constraint fails') )
44
      {
45
        throw $e;
46
        /*        if( !$message = $this->parseError($e->getMessage(), $id) )
47
          throw $e;
48
49
        echo $message;
50
        Yii::app()->end();*/
51
      }
52
    }
53
54 1
    return $result;
55
  }
56
57
  /*  private function parseError($error, $pk)
58
  {
59
    if( !preg_match('/a foreign key constraint fails \((.+)\). The SQL/', $error, $matchesQuery) )
60
      return null;
61
62
    if( !preg_match('/`(\w+)`.`(\w+)`.+FOREIGN KEY.+`(\w+)`.+REFERENCES+.`(\w+)`/', $matchesQuery[1], $matches) )
63
      return null;
64
65
    $db = $matches[1];
66
    $table = $matches[2];
67
    $field = $matches[3];
68
69
    if( !$records = $this->getRelatedRecords($table, $field, $pk) )
70
      return null;
71
72
    return $this->createResponse($table, $records);
73
  }
74
75
  private function getRelatedRecords($table, $field, $pk)
76
  {
77
    $criteria = new CDbCriteria();
78
    $criteria->compare($field, $pk);
79
80
    $command = Yii::app()->db->getSchema()->commandBuilder->createFindCommand($table, $criteria);
81
    return $command->queryAll();
82
  }
83
84
  private function createResponse($table, $records)
85
  {
86
    switch($table)
87
    {
88
      case $this->getFullTableName(BProductParam::model()->tableName()):
89
        $urls = array();
90
        foreach(CHtml::listData($records, 'product_id', 'product_id') as $productId)
91
        {
92
          $urls[$productId] = CHtml::link('Товар id='.$productId, '/backend/product/product/update/'.$productId, array('target' => '_blank'));
93
        }
94
        $out = 'Товары имеющие сввязанные параметры:<br/>';
95
        $out .= implode('<br/>', $urls);
96
      break;
97
    }
98
99
    return $out;
100
  }
101
102
  private function getFullTableName($shortName)
103
  {
104
    $normalShortName = trim($shortName, '{}');
105
    return Yii::app()->db->tablePrefix.$normalShortName;
106
  }*/
107
}