Skip to content

Commit a0d2735

Browse files
committed
Update RecordController store
1 parent 0ef3ba5 commit a0d2735

File tree

2 files changed

+40
-26
lines changed

2 files changed

+40
-26
lines changed

src/Http/Controllers/RecordController.php

Lines changed: 32 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,13 @@
44

55
use CodexShaper\DBM\Database\Schema\Table;
66
use CodexShaper\DBM\Facades\Driver;
7-
use CodexShaper\DBM\Traits\RecordRelationship;
87
use CodexShaper\DBM\Traits\RecordTrait;
98
use DBM;
109
use Illuminate\Http\Request;
1110

1211
class RecordController extends Controller
1312
{
14-
use RecordTrait, RecordRelationship;
13+
use RecordTrait;
1514

1615
public function index()
1716
{
@@ -26,10 +25,9 @@ public function store(Request $request)
2625
return $response;
2726
}
2827

29-
$tableName = $request->table;
30-
$originalColumns = Table::getColumnsName($tableName);
31-
$columns = json_decode($request->columns);
32-
$fields = json_decode($request->fields);
28+
$tableName = $request->table;
29+
$columns = json_decode($request->columns);
30+
$fields = json_decode($request->fields);
3331

3432
$errors = $this->validation($fields, $columns);
3533

@@ -38,32 +36,14 @@ public function store(Request $request)
3836
}
3937

4038
$object = DBM::Object()->where('name', $tableName)->first();
41-
$model = $object->model;
4239

43-
if (!class_exists($model)) {
40+
if (!class_exists($object->model)) {
4441
return $this->generateError(["Model not found. Please create model first"]);
4542
}
4643

4744
try {
4845

49-
$table = DBM::model($model, $tableName);
50-
51-
foreach ($columns as $column => $value) {
52-
if (in_array($column, $originalColumns)) {
53-
54-
if ($request->hasFile($column)) {
55-
$value = $this->saveFiles($request, $column, $tableName);
56-
}
57-
58-
if (!Driver::isMongoDB()) {
59-
if ($functionName = $this->hasFunction($fields, $column)) {
60-
$value = $this->executeFunction($functionName, $value);
61-
}
62-
}
63-
64-
$table->{$column} = $this->prepareStoreField($value, $tableName, $column);
65-
}
66-
}
46+
$table = $this->processStoreData($request, $object);
6747

6848
if ($table->save()) {
6949
$this->storeRelationshipData($fields, $columns, $object, $table);
@@ -78,6 +58,32 @@ public function store(Request $request)
7858
return response()->json(['success' => false]);
7959
}
8060

61+
public function processStoreData($request, $object)
62+
{
63+
$originalColumns = Table::getColumnsName($request->table);
64+
$columns = json_decode($request->columns);
65+
$table = DBM::model($object->model, $request->table);
66+
67+
foreach ($columns as $column => $value) {
68+
if (in_array($column, $originalColumns)) {
69+
70+
if ($request->hasFile($column)) {
71+
$value = $this->saveFiles($request, $column, $request->table);
72+
}
73+
74+
if (!Driver::isMongoDB()) {
75+
if ($functionName = $this->hasFunction($fields, $column)) {
76+
$value = $this->executeFunction($functionName, $value);
77+
}
78+
}
79+
80+
$table->{$column} = $this->prepareStoreField($value, $request->table, $column);
81+
}
82+
}
83+
84+
return $table;
85+
}
86+
8187
public function update(Request $request)
8288
{
8389
if ($request->ajax()) {

src/Traits/RecordTrait.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,19 @@
33
namespace CodexShaper\DBM\Traits;
44

55
use CodexShaper\DBM\Database\Drivers\MongoDB\Type;
6+
use CodexShaper\DBM\Database\Schema\Table;
67
use CodexShaper\DBM\Facades\Driver;
78
use CodexShaper\DBM\Facades\Manager as DBM;
89
use CodexShaper\DBM\Models\DBM_Collection;
10+
use CodexShaper\DBM\Traits\RecordRelationship;
911
use Illuminate\Support\Facades\DB;
1012
use Illuminate\Support\Facades\Validator;
1113
use Illuminate\Support\Str;
1214

1315
trait RecordTrait
1416
{
17+
use RecordRelationship;
18+
1519
protected $name;
1620
protected $function_name;
1721
protected $localModel;
@@ -28,6 +32,10 @@ trait RecordTrait
2832
protected $pivotTable;
2933
protected $foreignModel;
3034
protected $localTable;
35+
protected $model;
36+
protected $columns;
37+
protected $fields;
38+
protected $table;
3139

3240
public function saveFiles($request, $column, $tableName)
3341
{

0 commit comments

Comments
 (0)