devboard/github-object-api-facade

View on GitHub
src/Repo/CommitStatus/Converter/GithubCommitStatusConvertTrait.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

namespace DevBoardLib\GithubObjectApiFacade\Repo\CommitStatus\Converter;

use DateTime;
use DevBoardLib\GithubCore\Commit\GithubCommitId;
use DevBoardLib\GithubCore\Commit\GithubCommitSha;
use DevBoardLib\GithubCore\CommitStatus\GithubCommitStatusId;
use DevBoardLib\GithubCore\CommitStatus\GithubCommitStatusSource;
use DevBoardLib\GithubCore\CommitStatus\State\GithubCommitStatusStateFactory;
use DevBoardLib\GithubCore\External\ExternalServiceId;

/**
 * Class GithubCommitStatusConvertTrait.
 */
trait GithubCommitStatusConvertTrait
{
    /**
     * @param array $data
     *
     * @throws \Exception
     *
     * @return GithubCommitStatusSource
     */
    protected function convertCommitStatus(array $data)
    {
        return new GithubCommitStatusSource(
            new GithubCommitStatusId($data['id']),
            new GithubCommitId($this->githubRepo->getId(), new GithubCommitSha($data['sha'])),
            new ExternalServiceId($data['context']),
            $data['description'],
            $data['target_url'],
            GithubCommitStatusStateFactory::create($data['state']),
            new DateTime($data['created_at']),
            new DateTime($data['updated_at'])

        );
    }
}