Start with snips content abstraction

This commit is contained in:
Tim
2023-04-15 13:20:07 +02:00
parent 980ea6af94
commit a405578f93
6 changed files with 53 additions and 11 deletions

View File

@ -0,0 +1,13 @@
<?php
namespace App\Service\SnipContent;
class SnipContentDB implements SnipContentInterface
{
public function __construct()
{
}
}

View File

@ -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()));
}

View 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;
}

View File

@ -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());
}
}