Completed
Push — master ( 41e9e9...a6c9e2 )
by Sherif
02:54
created

CoreConfig::getConfig()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 147
Code Lines 117

Duplication

Lines 0
Ratio 0 %

Importance

Changes 3
Bugs 0 Features 0
Metric Value
dl 0
loc 147
rs 8.2857
c 3
b 0
f 0
cc 1
eloc 117
nc 1
nop 0

How to fix   Long Method   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php namespace App\Modules\V1\Core\Utl;
2
use \App\Modules\V1\Core\Settings;
3
4
class CoreConfig
5
{
6
    public function getConfig()
7
    {
8
    	$customSettings = [];
9
    	Settings::get(['key', 'value'])->each(function ($setting) use (&$customSettings){
10
    		$customSettings[$setting['key']] = $setting['value'];
11
    	});
12
13
        return array_merge($customSettings, [
14
			/**
15
			 * Specify what relations should be used for every model.
16
			 */
17
			'relations' => [
18
				'users' => [
19
					'all'        => [],
20
					'find'       => ['groups'],
21
					'findby'     => [],
22
					'paginate'   => ['groups'],
23
					'paginateby' => [],
24
					'first'      => [],
25
					'search'     => [],
26
					'account'    => ['groups'],
27
					'group'      => [],
28
				],
29
				'permissions' => [
30
					'all'        => [],
31
					'find'       => ['groups'],
32
					'findby'     => [],
33
					'paginate'   => [],
34
					'paginateby' => [],
35
					'first'      => ['groups'],
36
					'search'     => [],
37
				],
38
				'groups' => [
39
					'all'        => [],
40
					'find'       => ['permissions'],
41
					'findby'     => [],
42
					'paginate'   => [],
43
					'paginateby' => [],
44
					'first'      => ['permissions'],
45
					'search'     => [],
46
				],
47
				'logs' => [
48
					'all'        => ['user', 'item'],
49
					'find'       => ['user', 'item'],
50
					'findby'     => ['user', 'item'],
51
					'paginate'   => ['user', 'item'],
52
					'paginateby' => ['user', 'item'],
53
					'first'      => ['user', 'item'],
54
					'search'     => ['user', 'item'],
55
				],
56
				'notifications' => [
57
					'all'        => ['item'],
58
					'find'       => ['item'],
59
					'findby'     => ['item'],
60
					'paginate'   => ['item'],
61
					'paginateby' => ['item'],
62
					'first'      => ['item'],
63
					'search'     => ['item'],
64
				],
65
			],
66
			/**
67
			 * Specify caching config for each api.
68
			 */
69
			'cacheConfig' => [
70
				'users' => [
71
					'cache' => [
72
						'all',
73
						'find',
74
						'findBy',
75
						'paginate',
76
						'paginateBy',
77
						'first',
78
						'search',
79
						'account',
80
						'group',
81
						'deleted'
82
					],
83
					'clear' => [
84
						'block'        => ['users', 'groups'],
85
						'unblock'      => ['users', 'groups'],
86
						'register'     => ['users', 'groups'],
87
						'assignGroups' => ['users', 'groups'],
88
						'saveProfile'  => ['users', 'groups'],
89
						'update'       => ['users', 'groups'],
90
						'save'         => ['users', 'groups'],
91
						'delete'       => ['users', 'groups'],
92
						'restore'      => ['users', 'groups'],
93
					],
94
				],
95
				'permissions' => [
96
					'cache' => [
97
						'all',
98
						'find',
99
						'findBy',
100
						'paginate',
101
						'paginateBy',
102
						'first',
103
						'search',
104
						'deleted'
105
					],
106
					'clear' => [
107
						'update'  => ['users', 'groups', 'permissions'],
108
						'save'    => ['users', 'groups', 'permissions'],
109
						'delete'  => ['users', 'groups', 'permissions'],
110
						'restore' => ['users', 'groups', 'permissions'],
111
					]
112
				],
113
				'groups' => [
114
					'cache' => [
115
						'all',
116
						'find',
117
						'findBy',
118
						'paginate',
119
						'paginateBy',
120
						'first',
121
						'search',
122
						'deleted'
123
					],
124
					'clear' => [
125
						'update'            => ['users', 'groups', 'permissions'],
126
						'save'              => ['users', 'groups', 'permissions'],
127
						'delete'            => ['users', 'groups', 'permissions'],
128
						'restore'           => ['users', 'groups', 'permissions'],
129
						'assignPermissions' => ['users', 'groups', 'permissions'],
130
					]
131
				],
132
				'settings' => [
133
					'cache' => [
134
						'all',
135
						'find',
136
						'findBy',
137
						'paginate',
138
						'paginateBy',
139
						'first',
140
						'search',
141
						'deleted'
142
					],
143
					'clear' => [
144
						'update'  => ['users', 'groups', 'permissions'],
145
						'save'    => ['settings'],
146
						'delete'  => ['settings'],
147
						'restore' => ['settings'],
148
					]
149
				]
150
			]
151
		]);
152
    }
153
}