Completed
Push — master ( 0f7120...6fc9e3 )
by Janis
03:12
created

OcrController   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 64
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Test Coverage

Coverage 35.7%

Importance

Changes 0
Metric Value
wmc 4
lcom 1
cbo 2
dl 0
loc 64
ccs 5
cts 14
cp 0.357
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 5 1
A languages() 0 5 1
A process() 0 5 1
A status() 0 5 1
1
<?php
2
/**
3
 * nextCloud - ocr
4
 *
5
 * This file is licensed under the Affero General Public License version 3 or
6
 * later. See the COPYING file.
7
 *
8
 * @author Janis Koehr <[email protected]>
9
 * @copyright Janis Koehr 2016
10
 */
11
12
namespace OCA\Ocr\Controller;
13
14
use OCA\Ocr\Service\OcrService;
15
use OCP\AppFramework\Http\DataResponse;
16
use OCP\IRequest;
17
use OCP\AppFramework\Controller;
18
19
20
21
/**
22
 * Class OcrController
23
 *
24
 * @package OCA\Ocr\Controller
25
 */
26
class OcrController extends Controller {
27
28
	/**
29
	 * @var string
30
	 */
31
	private $userId;
32
33
	/**
34
	 * @var OcrService
35
	 */
36
	private $service;
37
38
	use Errors;
39
40
	/**
41
	 * OcrController constructor.
42
	 *
43
	 * @param string $AppName
44
	 * @param IRequest $request
45
	 * @param OcrService $service
46
	 * @param $UserId
47
	 */
48 1
	public function __construct($AppName, IRequest $request, OcrService $service, $UserId) {
49 1
		parent::__construct($AppName, $request);
50 1
		$this->userId = $UserId;
51 1
		$this->service = $service;
52 1
	}
53
54
	/**
55
	 * Get languages supported by installed tesseract. (Version has to be at least 3.02.02)
56
	 * @NoAdminRequired
57
	 * @return DataResponse
58
	 */
59
	public function languages() {
60
		return $this->handleNotFound(function() {
61
			return $this->service->listLanguages();
62
		});
63
	}
64
65
	/**
66
	 * Processing the srcFile(s)
67
	 * @NoAdminRequired
68
	 * @param string $language - deu, eng...
69
	 * @param array $files
70
	 * @return DataResponse
71
	 */
72
	public function process($language, $files) {
73
		return $this->handleNotFound(function() use ($language, $files){
74
			return $this->service->process($language, $files);
75
		});
76
	}
77
78
	/**
79
	 * Get the current status.
80
	 * @NoAdminRequired
81
	 * @return DataResponse
82
	 */
83
	public function status() {
84
		return $this->handleNotFound(function() {
85
			return $this->service->status();
86
		});
87
	}
88
89
}