Start with snips content abstraction
This commit is contained in:
13
src/Service/SnipContent/SnipContentDB.php
Normal file
13
src/Service/SnipContent/SnipContentDB.php
Normal file
@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
namespace App\Service\SnipContent;
|
||||
|
||||
class SnipContentDB implements SnipContentInterface
|
||||
{
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -1,12 +1,12 @@
|
||||
<?php
|
||||
|
||||
namespace App\Service;
|
||||
namespace App\Service\SnipContent;
|
||||
|
||||
use App\Entity\User;
|
||||
use App\Git\CustomGitRepository;
|
||||
use Symfony\Component\Security\Core\User\UserInterface;
|
||||
|
||||
class SnipService
|
||||
class SnipContentGit implements SnipContentInterface
|
||||
{
|
||||
private const SNIP_FILE_NAME = 'snip.txt';
|
||||
private const MASTER_BRANCH_NAME = 'master';
|
||||
@ -51,12 +51,22 @@ class SnipService
|
||||
return file_get_contents($this->getSnipPath());
|
||||
}
|
||||
|
||||
public function getRepo(): CustomGitRepository
|
||||
public function getHistory(): array
|
||||
{
|
||||
return $this->repo;
|
||||
return $this->repo->getAllCommits();
|
||||
}
|
||||
|
||||
public function deleteRepo(): void
|
||||
public function setCommit(string $commit): void
|
||||
{
|
||||
$this->repo->checkout($commit);
|
||||
}
|
||||
|
||||
public function getCommit(): string
|
||||
{
|
||||
return $this->repo->getCurrentBranchName();
|
||||
}
|
||||
|
||||
public function delete(): void
|
||||
{
|
||||
system("rm -rf " . escapeshellarg($this->repo->getRepositoryPath()));
|
||||
}
|
18
src/Service/SnipContent/SnipContentInterface.php
Normal file
18
src/Service/SnipContent/SnipContentInterface.php
Normal file
@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
namespace App\Service\SnipContent;
|
||||
|
||||
interface SnipContentInterface
|
||||
{
|
||||
public function update(string $snipContents): void;
|
||||
|
||||
public function get(): string;
|
||||
|
||||
public function getHistory(): array;
|
||||
|
||||
public function setCommit(string $commit): void;
|
||||
|
||||
public function getCommit(): string;
|
||||
|
||||
public function delete(): void;
|
||||
}
|
@ -4,6 +4,7 @@ namespace App\Service;
|
||||
|
||||
use App\Entity\Snip;
|
||||
use App\Git\CustomGit;
|
||||
use App\Service\SnipContent\SnipContentGit;
|
||||
use Symfony\Bundle\SecurityBundle\Security;
|
||||
|
||||
class SnipServiceFactory
|
||||
@ -16,7 +17,7 @@ class SnipServiceFactory
|
||||
{
|
||||
}
|
||||
|
||||
public function create(Snip $snip): SnipService
|
||||
public function create(Snip $snip): SnipContentGit
|
||||
{
|
||||
$git = new CustomGit();
|
||||
$repoPath = sprintf('%s/%s', $this->snipBasePath, $snip->getId());
|
||||
@ -28,6 +29,6 @@ class SnipServiceFactory
|
||||
} else {
|
||||
$repo = $git->open($repoPath);
|
||||
}
|
||||
return new SnipService($repo, $this->security->getUser());
|
||||
return new SnipContentGit($repo, $this->security->getUser());
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user