Start on snip history manipulation

This commit is contained in:
Tim
2023-04-05 08:26:36 +02:00
parent ccab49dd3c
commit e461a7ad35
4 changed files with 59 additions and 15 deletions

View File

@ -2,28 +2,17 @@
namespace App\Service;
use App\Entity\Snip;
use App\Entity\User;
use CzProject\GitPhp\Git;
use App\Git\CustomGitRepository;
use CzProject\GitPhp\GitRepository;
class SnipService
{
private GitRepository $repo;
public function __construct(
Snip $snip,
string $snipBasePath,
private readonly User $user,
private readonly CustomGitRepository $repo,
private readonly User $user,
)
{
$git = new Git();
$repoPath = sprintf('%s/%s', $snipBasePath, $snip->getId());
if (!is_dir($repoPath)) {
$this->repo = $git->init($repoPath);
} else {
$this->repo = $git->open($repoPath);
}
}
private function snipExists(): bool
@ -52,4 +41,9 @@ class SnipService
}
return file_get_contents($this->getSnipPath());
}
public function getRepo(): GitRepository
{
return $this->repo;
}
}

View File

@ -3,6 +3,7 @@
namespace App\Service;
use App\Entity\Snip;
use App\Git\CustomGit;
use Symfony\Bundle\SecurityBundle\Security;
class SnipServiceFactory
@ -17,6 +18,13 @@ class SnipServiceFactory
public function create(Snip $snip): SnipService
{
return new SnipService($snip, $this->snipBasePath, $this->security->getUser());
$git = new CustomGit();
$repoPath = sprintf('%s/%s', $this->snipBasePath, $snip->getId());
if (!is_dir($repoPath)) {
$repo = $git->init($repoPath);
} else {
$repo = $git->open($repoPath);
}
return new SnipService($repo, $this->security->getUser());
}
}