Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/text.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJulien Veyssier <eneiluj@posteo.net>2021-10-20 13:27:47 +0300
committerJulien Veyssier <eneiluj@posteo.net>2022-01-03 12:27:34 +0300
commit48e9828d99bf681125fdaea83a1df60fa00dbf7a (patch)
tree748452bfd67b4461614bec285b39e19b9cd7eb70 /lib
parentb7234c04010dc4a487ce5218409acdc47e61e44f (diff)
loading animation when inserting image link or uploading image
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
Diffstat (limited to 'lib')
-rw-r--r--lib/Controller/ImageController.php1
-rw-r--r--lib/Service/ImageService.php63
2 files changed, 34 insertions, 30 deletions
diff --git a/lib/Controller/ImageController.php b/lib/Controller/ImageController.php
index 3caf20d8b..d1371e464 100644
--- a/lib/Controller/ImageController.php
+++ b/lib/Controller/ImageController.php
@@ -29,7 +29,6 @@ use OCP\AppFramework\Http;
use OCA\Text\Service\ImageService;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http\DataResponse;
-use OCP\AppFramework\Http\Response;
use OCP\IRequest;
class ImageController extends Controller {
diff --git a/lib/Service/ImageService.php b/lib/Service/ImageService.php
index 70530cd40..1fdcb318b 100644
--- a/lib/Service/ImageService.php
+++ b/lib/Service/ImageService.php
@@ -27,8 +27,6 @@ declare(strict_types=1);
namespace OCA\Text\Service;
use Exception;
-use OCP\Files\Node;
-use OCP\Files\FileInfo;
use OCP\Files\Folder;
use Throwable;
use GuzzleHttp\Exception\ClientException;
@@ -82,41 +80,48 @@ class ImageService {
public function downloadImageLink(string $link, string $userId): array {
$fileName = (string) time();
$saveDir = $this->getOrCreateTextDirectory($userId);
- $savedFile = $saveDir->newFile($fileName);
- $resource = $savedFile->fopen('w');
- $res = $this->simpleDownload($link, $resource);
- if (is_resource($resource)) {
- fclose($resource);
- }
- $savedFile->touch();
- if (isset($res['Content-Type'])) {
- if ($res['Content-Type'] === 'image/jpg') {
- $fileName = $fileName . '.jpg';
- } elseif ($res['Content-Type'] === 'image/png') {
- $fileName = $fileName . '.png';
- } else {
+ if ($saveDir !== null) {
+ $savedFile = $saveDir->newFile($fileName);
+ $resource = $savedFile->fopen('w');
+ $res = $this->simpleDownload($link, $resource);
+ if (is_resource($resource)) {
+ fclose($resource);
+ }
+ $savedFile->touch();
+ if (isset($res['Content-Type'])) {
+ if ($res['Content-Type'] === 'image/jpg') {
+ $fileName = $fileName . '.jpg';
+ } elseif ($res['Content-Type'] === 'image/png') {
+ $fileName = $fileName . '.png';
+ } else {
+ return [
+ 'error' => 'Unsupported file type',
+ ];
+ }
+ $targetPath = $saveDir->getPath() . '/' . $fileName;
+ $savedFile->move($targetPath);
+ $path = preg_replace('/^files/', '', $savedFile->getInternalPath());
+ // get file type and name
return [
- 'error' => 'Unsupported file type',
+ 'name' => $fileName,
+ 'path' => $path,
];
+ } else {
+ return $res;
}
- $targetPath = $saveDir->getPath() . '/' . $fileName;
- $savedFile->move($targetPath);
- $path = preg_replace('/^files/', '', $savedFile->getInternalPath());
- // get file type and name
+ } else {
return [
- 'name' => $fileName,
- 'path' => $path,
+ 'error' => 'Impossible to create /Text directory',
];
- } else {
- return $res;
}
}
- private function getOrCreateTextDirectory(string $userId): ?Node {
+ private function getOrCreateTextDirectory(string $userId): ?Folder {
$userFolder = $this->rootFolder->getUserFolder($userId);
if ($userFolder->nodeExists('/Text')) {
$node = $userFolder->get('Text');
- if ($node->getType() === FileInfo::TYPE_FOLDER) {
+ //if ($node->getType() === FileInfo::TYPE_FOLDER) {
+ if ($node instanceof Folder) {
return $node;
} else {
return null;
@@ -151,11 +156,11 @@ class ImageService {
if ($method === 'GET') {
$response = $client->get($url, $options);
- } else if ($method === 'POST') {
+ } elseif ($method === 'POST') {
$response = $client->post($url, $options);
- } else if ($method === 'PUT') {
+ } elseif ($method === 'PUT') {
$response = $client->put($url, $options);
- } else if ($method === 'DELETE') {
+ } elseif ($method === 'DELETE') {
$response = $client->delete($url, $options);
} else {
return ['error' => 'Bad HTTP method'];