Skip to content

Commit 7b18121

Browse files
committed
Update RecordController store and update
1 parent a0d2735 commit 7b18121

File tree

2 files changed

+40
-39
lines changed

2 files changed

+40
-39
lines changed

src/Http/Controllers/RecordController.php

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ public function processStoreData($request, $object)
6262
{
6363
$originalColumns = Table::getColumnsName($request->table);
6464
$columns = json_decode($request->columns);
65+
$fields = json_decode($request->fields);
6566
$table = DBM::model($object->model, $request->table);
6667

6768
foreach ($columns as $column => $value) {
@@ -109,7 +110,11 @@ public function update(Request $request)
109110
}
110111

111112
try {
112-
$this->sync($request, $object);
113+
$table = $this->processUpdateData($request, $object);
114+
if ($table->update()) {
115+
$this->updateRelationshipData($fields, $columns, $object, $table);
116+
return response()->json(['success' => true]);
117+
}
113118
return response()->json(['success' => true]);
114119
} catch (\Exception $e) {
115120
return $this->generateError([$e->getMessage()]);
@@ -119,6 +124,40 @@ public function update(Request $request)
119124
return response()->json(['success' => false]);
120125
}
121126

127+
public function processUpdateData($request, $object)
128+
{
129+
$originalColumns = Table::getColumnsName($request->table);
130+
$columns = json_decode($request->columns);
131+
$fields = json_decode($request->fields);
132+
$key = $object->details['findColumn'];
133+
134+
$table = DBM::model($object->model, $request->table)->where($key, $columns->{$key})->first();
135+
136+
foreach ($columns as $column => $value) {
137+
138+
if (in_array($column, $originalColumns)) {
139+
140+
if ($request->hasFile($column)) {
141+
$value = $this->saveFiles($request, $column, $request->table);
142+
}
143+
144+
if ($value !== null && $value !== "") {
145+
146+
if (!Driver::isMongoDB()) {
147+
if ($functionName = $this->hasFunction($fields, $column)) {
148+
$value = $this->executeFunction($functionName, $value);
149+
}
150+
}
151+
152+
$table->{$column} = $this->prepareStoreField($value, $request->table, $column);
153+
}
154+
}
155+
}
156+
157+
return $table;
158+
159+
}
160+
122161
public function delete(Request $request)
123162
{
124163
if ($request->ajax()) {

src/Traits/RecordTrait.php

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

55
use CodexShaper\DBM\Database\Drivers\MongoDB\Type;
6-
use CodexShaper\DBM\Database\Schema\Table;
76
use CodexShaper\DBM\Facades\Driver;
87
use CodexShaper\DBM\Facades\Manager as DBM;
98
use CodexShaper\DBM\Models\DBM_Collection;
@@ -135,43 +134,6 @@ public function prepareJsonFieldData($records, $fields, $object, $findValue)
135134
];
136135
}
137136

138-
public function sync($request, $object)
139-
{
140-
$tableName = $request->table;
141-
$originalColumns = Table::getColumnsName($tableName);
142-
$columns = json_decode($request->columns);
143-
$fields = json_decode($request->fields);
144-
$key = $object->details['findColumn'];
145-
146-
$table = DBM::model($object->model, $tableName)->where($key, $columns->{$key})->first();
147-
148-
foreach ($columns as $column => $value) {
149-
150-
if (in_array($column, $originalColumns)) {
151-
152-
if ($request->hasFile($column)) {
153-
$value = $this->saveFiles($request, $column, $tableName);
154-
}
155-
156-
if ($value !== null && $value !== "") {
157-
158-
if (!Driver::isMongoDB()) {
159-
if ($functionName = $this->hasFunction($fields, $column)) {
160-
$value = $this->executeFunction($functionName, $value);
161-
}
162-
}
163-
164-
$table->{$column} = $this->prepareStoreField($value, $tableName, $column);
165-
}
166-
}
167-
}
168-
169-
if ($table->update()) {
170-
$this->updateRelationshipData($fields, $columns, $object, $table);
171-
return response()->json(['success' => true]);
172-
}
173-
}
174-
175137
public function getSettingOptions($field)
176138
{
177139
$options = $field->settings['options'];

0 commit comments

Comments
 (0)