Added 'user_id' (created by) and 'create_date' columns to 'project' table.

This commit is contained in:
Dmitry Khomutov 2017-10-19 22:05:00 +07:00
parent 7382df7f6d
commit dd4f3bfbad
7 changed files with 155 additions and 28 deletions

View file

@ -327,7 +327,9 @@ class ProjectController extends PHPCensor\Controller
'environments' => $this->getParam('environments', null),
];
$project = $this->projectService->createProject($title, $type, $reference, $options);
/** @var PHPCensor\Model\User $user */
$user = $_SESSION['php-censor-user'];
$project = $this->projectService->createProject($title, $type, $reference, $user->getId(), $options);
$response = new RedirectResponse();
$response->setHeader('Location', APP_URL.'project/view/' . $project->getId());

View file

@ -66,7 +66,7 @@ class ConvertErrors extends AbstractMigration
$buildError = new BuildError();
$buildError->setBuildId($meta->getBuildId());
$buildError->setPlugin('php_mess_detector');
$buildError->setCreatedDate(new \DateTime());
$buildError->setCreateDate(new \DateTime());
$buildError->setFile($error['file']);
$buildError->setLineStart($error['line_start']);
$buildError->setLineEnd($error['line_end']);
@ -87,7 +87,7 @@ class ConvertErrors extends AbstractMigration
$buildError = new BuildError();
$buildError->setBuildId($meta->getBuildId());
$buildError->setPlugin('php_code_sniffer');
$buildError->setCreatedDate(new \DateTime());
$buildError->setCreateDate(new \DateTime());
$buildError->setFile($error['file']);
$buildError->setLineStart($error['line']);
$buildError->setLineEnd($error['line']);
@ -117,7 +117,7 @@ class ConvertErrors extends AbstractMigration
$buildError = new BuildError();
$buildError->setBuildId($meta->getBuildId());
$buildError->setPlugin('php_docblock_checker');
$buildError->setCreatedDate(new \DateTime());
$buildError->setCreateDate(new \DateTime());
$buildError->setFile($error['file']);
$buildError->setLineStart($error['line']);
$buildError->setLineEnd($error['line']);
@ -148,7 +148,7 @@ class ConvertErrors extends AbstractMigration
$buildError = new BuildError();
$buildError->setBuildId($meta->getBuildId());
$buildError->setPlugin('php_cpd');
$buildError->setCreatedDate(new \DateTime());
$buildError->setCreateDate(new \DateTime());
$buildError->setFile($error['file']);
$buildError->setLineStart($error['line_start']);
$buildError->setLineEnd($error['line_end']);
@ -169,7 +169,7 @@ class ConvertErrors extends AbstractMigration
$buildError = new BuildError();
$buildError->setBuildId($meta->getBuildId());
$buildError->setPlugin('technical_debt');
$buildError->setCreatedDate(new \DateTime());
$buildError->setCreateDate(new \DateTime());
$buildError->setFile($error['file']);
$buildError->setLineStart($error['line']);
$buildError->setSeverity(BuildError::SEVERITY_NORMAL);

View file

@ -0,0 +1,56 @@
<?php
use Phinx\Migration\AbstractMigration;
class AddedAdditionalColumns3 extends AbstractMigration
{
public function up()
{
$table = $this->table('build_error');
if ($table->hasColumn('created_date') && !$table->hasColumn('create_date')) {
$table
->renameColumn('created_date', 'create_date')
->save();
}
$table = $this->table('project');
if (!$table->hasColumn('create_date')) {
$table
->addColumn('create_date', 'datetime', ['null' => true])
->save();
}
if (!$table->hasColumn('user_id')) {
$table
->addColumn('user_id', 'integer', ['default' => 0])
->save();
}
}
public function down()
{
$table = $this->table('build_error');
if ($table->hasColumn('create_date') && !$table->hasColumn('created_date')) {
$table
->renameColumn('create_date', 'created_date')
->save();
}
$table = $this->table('project');
if ($table->hasColumn('create_date')) {
$table
->removeColumn('create_date')
->save();
}
if ($table->hasColumn('user_id')) {
$table
->removeColumn('user_id')
->save();
}
}
}

View file

@ -8,9 +8,9 @@ use b8\Store\Factory;
class BuildError extends Model
{
const SEVERITY_CRITICAL = 0;
const SEVERITY_HIGH = 1;
const SEVERITY_NORMAL = 2;
const SEVERITY_LOW = 3;
const SEVERITY_HIGH = 1;
const SEVERITY_NORMAL = 2;
const SEVERITY_LOW = 3;
/**
* @var array
@ -39,7 +39,7 @@ class BuildError extends Model
'line_end' => null,
'severity' => null,
'message' => null,
'created_date' => null,
'create_date' => null,
];
/**
@ -55,7 +55,7 @@ class BuildError extends Model
'line_end' => 'getLineEnd',
'severity' => 'getSeverity',
'message' => 'getMessage',
'created_date' => 'getCreatedDate',
'create_date' => 'getCreateDate',
// Foreign key getters:
'Build' => 'getBuild',
@ -74,7 +74,7 @@ class BuildError extends Model
'line_end' => 'setLineEnd',
'severity' => 'setSeverity',
'message' => 'setMessage',
'created_date' => 'setCreatedDate',
'create_date' => 'setCreateDate',
// Foreign key setters:
'Build' => 'setBuild',
@ -163,9 +163,9 @@ class BuildError extends Model
/**
* @return \DateTime
*/
public function getCreatedDate()
public function getCreateDate()
{
$rtn = $this->data['created_date'];
$rtn = $this->data['create_date'];
if (!empty($rtn)) {
$rtn = new \DateTime($rtn);
@ -310,18 +310,18 @@ class BuildError extends Model
/**
* @param $value \DateTime
*/
public function setCreatedDate($value)
public function setCreateDate($value)
{
$this->validateNotNull('created_date', $value);
$this->validateDate('created_date', $value);
$this->validateNotNull('create_date', $value);
$this->validateDate('create_date', $value);
if ($this->data['created_date'] === $value) {
if ($this->data['create_date'] === $value) {
return;
}
$this->data['created_date'] = $value;
$this->data['create_date'] = $value;
$this->setModified('created_date');
$this->setModified('create_date');
}
/**

View file

@ -47,6 +47,8 @@ class Project extends Model
'allow_public_status' => null,
'archived' => null,
'group_id' => null,
'create_date' => null,
'user_id' => 0,
];
/**
@ -68,6 +70,8 @@ class Project extends Model
'allow_public_status' => 'getAllowPublicStatus',
'archived' => 'getArchived',
'group_id' => 'getGroupId',
'create_date' => 'getCreateDate',
'user_id' => 'getUserId',
// Foreign key getters:
'Group' => 'getGroup',
@ -92,6 +96,8 @@ class Project extends Model
'allow_public_status' => 'setAllowPublicStatus',
'archived' => 'setArchived',
'group_id' => 'setGroupId',
'create_date' => 'setCreateDate',
'user_id' => 'setUserId',
// Foreign key setters:
'Group' => 'setGroup',
@ -602,6 +608,63 @@ class Project extends Model
return $rtn;
}
/**
* @return \DateTime
*/
public function getCreateDate()
{
$rtn = $this->data['create_date'];
if (!empty($rtn)) {
$rtn = new \DateTime($rtn);
}
return $rtn;
}
/**
* @param $value \DateTime
*/
public function setCreateDate($value)
{
$this->validateDate('create_date', $value);
if ($this->data['create_date'] === $value) {
return;
}
$this->data['create_date'] = $value;
$this->setModified('create_date');
}
/**
* @return string
*/
public function getUserId()
{
$rtn = $this->data['user_id'];
return (integer)$rtn;
}
/**
* @param $value integer
*/
public function setUserId($value)
{
$this->validateNotNull('user_id', $value);
$this->validateInt('user_id', $value);
if ($this->data['user_id'] === $value) {
return;
}
$this->data['user_id'] = $value;
$this->setModified('user_id');
}
/**
* Get the value of branch.
*

View file

@ -25,16 +25,22 @@ class ProjectService
/**
* Create a new project model and use the project store to save it.
* @param string $title
* @param string $type
* @param string $reference
* @param array $options
*
* @param string $title
* @param string $type
* @param string $reference
* @param integer $userId
* @param array $options
*
* @return \PHPCensor\Model\Project
*/
public function createProject($title, $type, $reference, $options = [])
public function createProject($title, $type, $reference, $userId, $options = [])
{
// Create base project and use updateProject() to set its properties:
$project = new Project();
$project->setCreateDate(new \DateTime());
$project->setUserId((integer)$userId);
return $this->updateProject($project, $title, $type, $reference, $options);
}

View file

@ -35,7 +35,7 @@ class ProjectServiceTest extends \PHPUnit\Framework\TestCase
public function testExecute_CreateBasicProject()
{
$returnValue = $this->testedService->createProject('Test Project', 'github', 'block8/phpci');
$returnValue = $this->testedService->createProject('Test Project', 'github', 'block8/phpci', 0);
$this->assertEquals('Test Project', $returnValue->getTitle());
$this->assertEquals('github', $returnValue->getType());
@ -53,7 +53,7 @@ class ProjectServiceTest extends \PHPUnit\Framework\TestCase
'branch' => 'testbranch',
];
$returnValue = $this->testedService->createProject('Test Project', 'github', 'block8/phpci', $options);
$returnValue = $this->testedService->createProject('Test Project', 'github', 'block8/phpci', 0, $options);
$this->assertEquals('private', $returnValue->getSshPrivateKey());
$this->assertEquals('public', $returnValue->getSshPublicKey());
@ -68,7 +68,7 @@ class ProjectServiceTest extends \PHPUnit\Framework\TestCase
public function testExecute_CreateGitlabProjectWithoutPort()
{
$reference = 'git@gitlab.block8.net:block8/phpci.git';
$returnValue = $this->testedService->createProject('Gitlab', 'gitlab', $reference);
$returnValue = $this->testedService->createProject('Gitlab', 'gitlab', $reference, 0);
$this->assertEquals('git', $returnValue->getAccessInformation('user'));
$this->assertEquals('gitlab.block8.net', $returnValue->getAccessInformation('domain'));