Skip to content

Commit 1082551

Browse files
authored
Merge pull request #194 from Inchoo/feature/custom-vcl-snippets
Changed reading and writing of custom snippets
2 parents a7f9a55 + adb0b80 commit 1082551

File tree

4 files changed

+132
-70
lines changed

4 files changed

+132
-70
lines changed

Diff for: Controller/Adminhtml/FastlyCdn/Vcl/CreateCustomSnippet.php

+21-4
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
use Magento\Framework\Exception\LocalizedException;
1111
use Magento\Framework\Filesystem\Directory\WriteFactory;
1212
use Magento\Framework\Controller\Result\JsonFactory;
13+
use Magento\Framework\Filesystem;
1314

1415
/**
1516
* Class CreateCustomSnippet
@@ -38,20 +39,37 @@ class CreateCustomSnippet extends Action
3839
* @var JsonFactory
3940
*/
4041
private $resultJson;
42+
/**
43+
* @var Filesystem
44+
*/
45+
private $filesystem;
4146

47+
/**
48+
* CreateCustomSnippet constructor.
49+
*
50+
* @param Context $context
51+
* @param RawFactory $resultRawFactory
52+
* @param FileFactory $fileFactory
53+
* @param DirectoryList $directoryList
54+
* @param WriteFactory $writeFactory
55+
* @param JsonFactory $resultJsonFactory
56+
* @param Filesystem $filesystem
57+
*/
4258
public function __construct(
4359
Context $context,
4460
RawFactory $resultRawFactory,
4561
FileFactory $fileFactory,
4662
DirectoryList $directoryList,
4763
WriteFactory $writeFactory,
48-
JsonFactory $resultJsonFactory
64+
JsonFactory $resultJsonFactory,
65+
Filesystem $filesystem
4966
) {
5067
$this->resultRawFactory = $resultRawFactory;
5168
$this->fileFactory = $fileFactory;
5269
$this->directoryList = $directoryList;
5370
$this->writeFactory = $writeFactory;
5471
$this->resultJson = $resultJsonFactory;
72+
$this->filesystem = $filesystem;
5573

5674
parent::__construct($context);
5775
}
@@ -68,12 +86,11 @@ public function execute()
6886
$priority = $this->getRequest()->getParam('priority');
6987
$vcl = $this->getRequest()->getParam('vcl');
7088

71-
$fileDirectory = DirectoryList::VAR_DIR;
7289
$snippetName = $this->validateCustomSnippet($name, $type, $priority);
7390
$fileName = $type . '_' . $priority . '_' . $snippetName . '.vcl';
7491

75-
$write = $this->writeFactory->create($fileDirectory . '/vcl_snippets_custom/');
76-
$write->writeFile($fileName, $vcl);
92+
$write = $this->filesystem->getDirectoryWrite(DirectoryList::VAR_DIR);
93+
$write->writeFile('/vcl_snippets_custom/' . $fileName, $vcl);
7794

7895
return $result->setData([
7996
'status' => true

Diff for: Controller/Adminhtml/FastlyCdn/Vcl/DeleteCustomSnippet.php

+50-31
Original file line numberDiff line numberDiff line change
@@ -2,73 +2,92 @@
22

33
namespace Fastly\Cdn\Controller\Adminhtml\FastlyCdn\Vcl;
44

5-
use Magento\Backend\App\Action;
6-
use Magento\Backend\App\Action\Context;
7-
use Magento\Framework\App\Request\Http;
5+
use Magento\Framework\App\Action\Action;
6+
use Magento\Framework\App\Action\Context;
7+
use Magento\Framework\Controller\Result\RawFactory;
8+
use Magento\Framework\App\Response\Http\FileFactory;
9+
use Magento\Framework\App\Filesystem\DirectoryList;
10+
use Magento\Framework\Filesystem\Directory\WriteFactory;
811
use Magento\Framework\Controller\Result\JsonFactory;
9-
use Magento\Framework\Filesystem\Driver\File;
10-
use Fastly\Cdn\Model\Config;
11-
use Fastly\Cdn\Model\Config\Backend\CustomSnippetUpload;
12+
use Magento\Framework\Filesystem;
1213

14+
/**
15+
* Class CreateCustomSnippet
16+
*
17+
* @package Fastly\Cdn\Controller\Adminhtml\FastlyCdn\Vcl
18+
*/
1319
class DeleteCustomSnippet extends Action
1420
{
1521
/**
16-
* @var Http
22+
* @var RawFactory
1723
*/
18-
private $request;
19-
24+
private $resultRawFactory;
25+
/**
26+
* @var FileFactory
27+
*/
28+
private $fileFactory;
29+
/**
30+
* @var DirectoryList
31+
*/
32+
private $directoryList;
33+
/**
34+
* @var WriteFactory
35+
*/
36+
private $writeFactory;
2037
/**
2138
* @var JsonFactory
2239
*/
2340
private $resultJson;
24-
2541
/**
26-
* @var Config
42+
* @var Filesystem
2743
*/
28-
private $config;
29-
30-
private $customSnippetUpload;
31-
32-
private $file;
44+
private $filesystem;
3345

3446
/**
3547
* DeleteCustomSnippet constructor.
3648
*
3749
* @param Context $context
38-
* @param Http $request
50+
* @param RawFactory $resultRawFactory
51+
* @param FileFactory $fileFactory
52+
* @param DirectoryList $directoryList
53+
* @param WriteFactory $writeFactory
3954
* @param JsonFactory $resultJsonFactory
40-
* @param Config $config
41-
* @param CustomSnippetUpload $customSnippetUpload
42-
* @param File $file
55+
* @param Filesystem $filesystem
4356
*/
4457
public function __construct(
4558
Context $context,
46-
Http $request,
59+
RawFactory $resultRawFactory,
60+
FileFactory $fileFactory,
61+
DirectoryList $directoryList,
62+
WriteFactory $writeFactory,
4763
JsonFactory $resultJsonFactory,
48-
Config $config,
49-
CustomSnippetUpload $customSnippetUpload,
50-
File $file
64+
Filesystem $filesystem
5165
) {
52-
$this->request = $request;
66+
$this->resultRawFactory = $resultRawFactory;
67+
$this->fileFactory = $fileFactory;
68+
$this->directoryList = $directoryList;
69+
$this->writeFactory = $writeFactory;
5370
$this->resultJson = $resultJsonFactory;
54-
$this->config = $config;
55-
$this->customSnippetUpload = $customSnippetUpload;
56-
$this->file = $file;
71+
$this->filesystem = $filesystem;
5772

5873
parent::__construct($context);
5974
}
6075

76+
/**
77+
* @return $this|\Magento\Framework\App\ResponseInterface|\Magento\Framework\Controller\ResultInterface
78+
*/
6179
public function execute()
6280
{
6381
$result = $this->resultJson->create();
6482

6583
try {
6684
$snippet = $this->getRequest()->getParam('snippet_id');
67-
$customSnippetPath = $this->customSnippetUpload->getUploadDirPath('vcl_snippets_custom');
6885

69-
if ($this->file->isExists($customSnippetPath . '/' . $snippet)) {
70-
$this->file->deleteFile($customSnippetPath . '/' . $snippet);
86+
$write = $this->filesystem->getDirectoryWrite(DirectoryList::VAR_DIR);
87+
if ($write->isExist('/vcl_snippets_custom/' . $snippet)) {
88+
$write->delete('/vcl_snippets_custom/' . $snippet);
7189
}
90+
7291
return $result->setData([
7392
'status' => true
7493
]);

Diff for: Controller/Adminhtml/FastlyCdn/Vcl/GetCustomSnippets.php

+48-32
Original file line numberDiff line numberDiff line change
@@ -2,85 +2,101 @@
22

33
namespace Fastly\Cdn\Controller\Adminhtml\FastlyCdn\Vcl;
44

5-
use Magento\Backend\App\Action;
6-
use Magento\Backend\App\Action\Context;
7-
use Magento\Framework\App\Request\Http;
8-
use Magento\Framework\App\ResponseInterface;
5+
use Magento\Framework\App\Action\Action;
6+
use Magento\Framework\App\Action\Context;
7+
use Magento\Framework\Controller\Result\RawFactory;
8+
use Magento\Framework\App\Response\Http\FileFactory;
9+
use Magento\Framework\App\Filesystem\DirectoryList;
10+
use Magento\Framework\Filesystem\Directory\WriteFactory;
911
use Magento\Framework\Controller\Result\JsonFactory;
10-
use Magento\Framework\Controller\ResultInterface;
11-
use Fastly\Cdn\Model\Config\Backend\CustomSnippetUpload;
12-
use \Magento\Framework\Filesystem\Directory\ReadFactory;
12+
use Magento\Framework\Filesystem;
1313

1414
/**
15-
* Class GetCustomSnippets
15+
* Class CreateCustomSnippet
1616
*
1717
* @package Fastly\Cdn\Controller\Adminhtml\FastlyCdn\Vcl
1818
*/
1919
class GetCustomSnippets extends Action
2020
{
2121
/**
22-
* @var Http
22+
* @var RawFactory
2323
*/
24-
private $request;
25-
24+
private $resultRawFactory;
25+
/**
26+
* @var FileFactory
27+
*/
28+
private $fileFactory;
29+
/**
30+
* @var DirectoryList
31+
*/
32+
private $directoryList;
33+
/**
34+
* @var WriteFactory
35+
*/
36+
private $writeFactory;
2637
/**
2738
* @var JsonFactory
2839
*/
2940
private $resultJson;
30-
3141
/**
32-
* @var CustomSnippetUpload
42+
* @var Filesystem
3343
*/
34-
private $customSnippetUpload;
35-
36-
private $readFactory;
44+
private $filesystem;
3745

3846
/**
3947
* GetCustomSnippets constructor.
4048
*
4149
* @param Context $context
42-
* @param Http $request
50+
* @param RawFactory $resultRawFactory
51+
* @param FileFactory $fileFactory
52+
* @param DirectoryList $directoryList
53+
* @param WriteFactory $writeFactory
4354
* @param JsonFactory $resultJsonFactory
44-
* @param CustomSnippetUpload $customSnippetUpload
45-
* @param ReadFactory $readFactory
55+
* @param Filesystem $filesystem
4656
*/
4757
public function __construct(
4858
Context $context,
49-
Http $request,
59+
RawFactory $resultRawFactory,
60+
FileFactory $fileFactory,
61+
DirectoryList $directoryList,
62+
WriteFactory $writeFactory,
5063
JsonFactory $resultJsonFactory,
51-
CustomSnippetUpload $customSnippetUpload,
52-
ReadFactory $readFactory
64+
Filesystem $filesystem
5365
) {
54-
$this->request = $request;
66+
$this->resultRawFactory = $resultRawFactory;
67+
$this->fileFactory = $fileFactory;
68+
$this->directoryList = $directoryList;
69+
$this->writeFactory = $writeFactory;
5570
$this->resultJson = $resultJsonFactory;
56-
$this->customSnippetUpload = $customSnippetUpload;
57-
$this->readFactory = $readFactory;
71+
$this->filesystem = $filesystem;
72+
5873
parent::__construct($context);
5974
}
6075

6176
/**
62-
* Get all backends for active version
63-
*
64-
* @return $this|ResponseInterface|ResultInterface
77+
* @return $this|\Magento\Framework\App\ResponseInterface|\Magento\Framework\Controller\ResultInterface
6578
*/
6679
public function execute()
6780
{
6881
$result = $this->resultJson->create();
6982
try {
70-
$customSnippetPath = $this->customSnippetUpload->getUploadDirPath('vcl_snippets_custom');
71-
$directoryRead = $this->readFactory->create($customSnippetPath);
72-
$customSnippets = $directoryRead->read();
83+
$read = $this->filesystem->getDirectoryRead(DirectoryList::VAR_DIR);
84+
$customSnippets = $read->read('vcl_snippets_custom');
7385

7486
if (!$customSnippets) {
7587
return $result->setData([
7688
'status' => false,
7789
'msg' => 'No snippets found.'
7890
]);
7991
}
92+
$snippets = [];
93+
foreach ($customSnippets as $snippet) {
94+
$snippets[] = explode('/', $snippet)[1];
95+
}
8096

8197
return $result->setData([
8298
'status' => true,
83-
'snippets' => $customSnippets
99+
'snippets' => $snippets
84100
]);
85101
} catch (\Exception $e) {
86102
return $result->setData([

Diff for: Controller/Adminhtml/FastlyCdn/Vcl/Upload.php

+13-3
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
use Magento\Framework\Stdlib\DateTime\DateTime;
1414
use Magento\Framework\Stdlib\DateTime\TimezoneInterface;
1515
use Magento\Framework\Exception\LocalizedException;
16+
use Magento\Framework\Filesystem;
17+
use Magento\Framework\App\Filesystem\DirectoryList;
1618

1719
class Upload extends Action
1820
{
@@ -57,7 +59,11 @@ class Upload extends Action
5759
private $timezone;
5860

5961
/**
60-
*
62+
* @var Filesystem
63+
*/
64+
private $filesystem;
65+
66+
/**
6167
* Upload constructor.
6268
*
6369
* @param Context $context
@@ -69,6 +75,7 @@ class Upload extends Action
6975
* @param CustomSnippetUpload $customSnippetUpload
7076
* @param DateTime $time
7177
* @param TimezoneInterface $timezone
78+
* @param Filesystem $filesystem
7279
*/
7380
public function __construct(
7481
Context $context,
@@ -79,7 +86,8 @@ public function __construct(
7986
Vcl $vcl,
8087
CustomSnippetUpload $customSnippetUpload,
8188
DateTime $time,
82-
TimezoneInterface $timezone
89+
TimezoneInterface $timezone,
90+
Filesystem $filesystem
8391
) {
8492
$this->request = $request;
8593
$this->resultJson = $resultJsonFactory;
@@ -89,6 +97,7 @@ public function __construct(
8997
$this->customSnippetUpload = $customSnippetUpload;
9098
$this->time = $time;
9199
$this->timezone = $timezone;
100+
$this->filesystem = $filesystem;
92101
parent::__construct($context);
93102
}
94103

@@ -108,7 +117,8 @@ public function execute()
108117
$currActiveVersion = $this->vcl->getCurrentVersion($service->versions);
109118
$clone = $this->api->cloneVersion($currActiveVersion);
110119
$snippets = $this->config->getVclSnippets();
111-
$customSnippetPath = $this->customSnippetUpload->getUploadDirPath('vcl_snippets_custom');
120+
$read = $this->filesystem->getDirectoryRead(DirectoryList::VAR_DIR);
121+
$customSnippetPath = $read->getAbsolutePath('vcl_snippets_custom');
112122
$customSnippets = $this->config->getCustomSnippets($customSnippetPath);
113123

114124
foreach ($snippets as $key => $value) {

0 commit comments

Comments
 (0)