Skip to content

Commit d379802

Browse files
committed
Add new EnvironmentVariable model and configure app to use it
1 parent a904d4d commit d379802

10 files changed

Lines changed: 78 additions & 18 deletions

File tree

‎ProcessMaker/Http/Controllers/Api/Administration/EnvironmentVariablesController.php‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
use Illuminate\Http\Request;
66
use ProcessMaker\Http\Controllers\Controller;
7-
use ProcessMaker\Model\EnvironmentVariable;
7+
use ProcessMaker\Models\EnvironmentVariable;
88
use ProcessMaker\Transformers\EnvironmentVariableTransformer;
99

1010
class EnvironmentVariablesController extends Controller

‎ProcessMaker/Http/Controllers/Api/Designer/ScriptController.php‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
use ProcessMaker\Http\Controllers\Controller;
1010
use ProcessMaker\Model\Process;
1111
use ProcessMaker\Model\Script;
12-
use ProcessMaker\Model\EnvironmentVariable;
12+
use ProcessMaker\Models\EnvironmentVariable;
1313
use ProcessMaker\Transformers\ScriptTransformer;
1414
use Symfony\Component\HttpFoundation\Response;
1515

‎ProcessMaker/Model/EnvironmentVariable.php‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
<?php
2-
2+
/**
3+
* DEPRECATED - Use Models (plural) folder and namespace
4+
**/
35
namespace ProcessMaker\Model;
46

57
use Illuminate\Database\Eloquent\Model;

‎ProcessMaker/Model/Script.php‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
use Illuminate\Database\Eloquent\Model;
66
use Illuminate\Validation\Rule;
7-
use ProcessMaker\Model\EnvironmentVariable;
7+
use ProcessMaker\Models\EnvironmentVariable;
88
use ProcessMaker\Model\Traits\Uuid;
99
use Watson\Validating\ValidatingTrait;
1010

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
<?php
2+
3+
namespace ProcessMaker\Models;
4+
5+
use Illuminate\Database\Eloquent\Model;
6+
use Illuminate\Validation\Rule;
7+
use Spatie\BinaryUuid\HasBinaryUuid;
8+
9+
10+
class EnvironmentVariable extends Model
11+
{
12+
use HasBinaryUuid;
13+
14+
protected $fillable = [
15+
'name',
16+
'description',
17+
'value'
18+
];
19+
20+
protected $hidden = [
21+
'value'
22+
];
23+
24+
/**
25+
* Store the encrypted version of the variable value here
26+
*/
27+
public function setValueAttribute($value)
28+
{
29+
$this->attributes['value'] = encrypt($value);
30+
}
31+
32+
/**
33+
* Fetch the plain text version of the value
34+
*/
35+
public function getValueAttribute()
36+
{
37+
return decrypt($this->attributes['value']);
38+
}
39+
40+
public static function rules($existing = null)
41+
{
42+
$rules = [
43+
'description' => 'nullable',
44+
'value' => 'nullable',
45+
];
46+
if($existing) {
47+
$rules['name'] = [
48+
'required',
49+
'alpha_dash',
50+
Rule::unique('environment_variables')->ignore($existing->id)
51+
];
52+
} else {
53+
$rules['name'] = 'required|alpha_dash|unique:environment_variables';
54+
}
55+
return $rules;
56+
}
57+
58+
}

‎ProcessMaker/Transformers/EnvironmentVariableTransformer.php‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
namespace ProcessMaker\Transformers;
44

55
use League\Fractal\TransformerAbstract;
6-
use ProcessMaker\Model\EnvironmentVariable;
6+
use ProcessMaker\Models\EnvironmentVariable;
77

88
/**
99
* Transform a Environment Variable

‎database/factories/EnvironmentVariable.php‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?php
22

33
use Faker\Generator as Faker;
4-
use ProcessMaker\Model\EnvironmentVariable;
4+
use ProcessMaker\Models\EnvironmentVariable;
55

66
$factory->define(EnvironmentVariable::class, function (Faker $faker) {
77
return [

‎database/migrations/2018_08_21_174540_create_environment_variables_table.php‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,9 @@ class CreateEnvironmentVariablesTable extends Migration
1414
public function up()
1515
{
1616
Schema::create('environment_variables', function (Blueprint $table) {
17-
$table->increments('id');
18-
$table->char('uid', 36)->unique();
17+
$table->uuid('uuid');
18+
$table->primary('uuid');
19+
1920
$table->string('name');
2021
$table->text('description');
2122
$table->text('value');

‎database/seeds/ProcessSeeder.php‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?php
22

33
use Illuminate\Database\Seeder;
4-
use ProcessMaker\Model\EnvironmentVariable;
4+
use ProcessMaker\Models\EnvironmentVariable;
55
use ProcessMaker\Model\Form;
66
use ProcessMaker\Model\Process;
77
use ProcessMaker\Model\Script;

‎tests/Feature/Api/Administration/EnvironmentVariablesTest.php‎

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@
77
use Illuminate\Foundation\Testing\DatabaseTransactions;
88
use Illuminate\Support\Facades\Hash;
99
use ProcessMaker\Model\User;
10-
use ProcessMaker\Model\EnvironmentVariable;
11-
10+
use ProcessMaker\Models\EnvironmentVariable;
1211

1312
class EnvironmentVariablesTest extends TestCase
1413
{
@@ -117,12 +116,12 @@ public function it_should_successfully_return_an_environment_variable()
117116
]);
118117
$variable->fresh();
119118
// Is now fetch the variable and see if success
120-
$response = $this->api('get', self::API_TEST_VARIABLES . '/' . $variable->uid);
119+
$response = $this->api('get', self::API_TEST_VARIABLES . '/' . $variable->uuid_text);
121120

122121
$response->assertStatus(200);
123122

124123
$response->assertJsonStructure([
125-
'uid',
124+
'uuid',
126125
'name',
127126
'description',
128127
]);
@@ -150,7 +149,7 @@ public function it_should_have_validation_errors_on_name_uniqueness_during_updat
150149
'description' => 'testdescription',
151150
'value' => 'differentvalue'
152151
];
153-
$response = $this->api('PUT', self::API_TEST_VARIABLES . '/' . $variable->uid, $data);
152+
$response = $this->api('PUT', self::API_TEST_VARIABLES . '/' . $variable->uuid_text, $data);
154153

155154
// Check for validation error status code
156155
$response->assertStatus(422);
@@ -170,11 +169,11 @@ public function it_should_successfully_update_an_environment_variable()
170169
'description' => 'newdescription',
171170
'value' => 'newvalue'
172171
];
173-
$response = $this->api('PUT', self::API_TEST_VARIABLES . '/' . $variable->uid, $data);
172+
$response = $this->api('PUT', self::API_TEST_VARIABLES . '/' . $variable->uuid_text, $data);
174173

175174
$response->assertStatus(200);
176175

177-
$data['uid'] = $variable->uid;
176+
$data['uuid'] = $variable->uuid;
178177
unset($data['value']);
179178
$this->assertDatabaseHas('environment_variables', $data);
180179

@@ -187,7 +186,7 @@ public function it_should_successfully_update_an_environment_variable()
187186
public function it_should_return_paginated_environment_variables_during_index()
188187
{
189188
// Can't truncate because of DatabaseTransactions
190-
EnvironmentVariable::whereNotNull('id')->delete();
189+
EnvironmentVariable::whereNotNull('uuid')->delete();
191190

192191
$this->withoutExceptionHandling();
193192
factory(EnvironmentVariable::class, 50)->create();
@@ -229,7 +228,7 @@ public function it_should_successfully_remove_environment_variable()
229228
'value' => 'testvalue'
230229
]);
231230
$variable->fresh();
232-
$response = $this->api('DELETE', self::API_TEST_VARIABLES . '/' . $variable->uid);
231+
$response = $this->api('DELETE', self::API_TEST_VARIABLES . '/' . $variable->uuid_text);
233232

234233
$response->assertStatus(200);
235234

0 commit comments

Comments
 (0)