Completed
Pull Request — master (#93)
by Janis
12:34
created

AdminSettingsController   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 52
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 0
Metric Value
wmc 4
lcom 1
cbo 1
dl 0
loc 52
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 5 1
A getSettings() 0 5 1
A setSettings() 0 13 2
1
<?php
2
3
/**
4
 * Nextcloud - OCR
5
 *
6
 * This file is licensed under the Affero General Public License version 3 or
7
 * later. See the COPYING file.
8
 *
9
 * @author Janis Koehr <[email protected]>
10
 * @copyright Janis Koehr 2017
11
 */
12
namespace OCA\Ocr\Controller;
13
14
use OCP\AppFramework\Controller;
15
use OCP\IRequest;
16
use OCP\IL10N;
17
use OCA\Ocr\Config\AppConfig;
18
use OCP\AppFramework\Http\JSONResponse;
19
20
class AdminSettingsController extends Controller {
21
	
22
	/** @var IL10N */
23
	private $l10n;
24
	
25
	/** @var AppConfig */
26
	private $appConfig;
27
	/**
28
	 *
29
	 * @param string $appName        	
30
	 * @param IRequest $request        	
31
	 * @param IL10N $l10n        	
32
	 * @param AppConfig $appConfig        	
33
	 * @param string $userId        	
34
	 */
35
	public function __construct($appName, IRequest $request, IL10N $l10n, AppConfig $appConfig, $userId) {
36
		parent::__construct ( $appName, $request );
37
		$this->l10n = $l10n;
38
		$this->appConfig = $appConfig;
39
	}
40
	
41
	/**
42
	 * @NoAdminRequired
43
	 *
44
	 * @return JSONResponse
45
	 */
46
	public function getSettings() {
47
		return new JSONResponse( [ 
48
				'languages' => $this->appConfig->getAppValue ( 'languages' ) 
49
		] );
50
	}
51
	
52
	/**
53
	 * Sets the languages that are supported by the docker worker instance.
54
	 *
55
	 * @param string $languages        	
56
	 * @return JSONResponse
57
	 */
58
	public function setSettings($languages) {
59
		$message = $this->l10n->t ( 'Saved' );
60
		if ($languages !== null) {
61
			$this->appConfig->setAppValue ( 'languages', $languages );
62
		}
63
		$response = array (
64
				'status' => 'success',
65
				'data' => array (
66
						'message' => ( string ) $message 
67
				) 
68
		);
69
		return new JSONResponse ( $response );
70
	}
71
}