Code Duplication    Length = 49-49 lines in 2 locations

src/DataTablesEditor.php 2 locations

@@ 82-130 (lines=49) @@
79
     * @param Request $request
80
     * @return JsonResponse
81
     */
82
    public function create(Request $request)
83
    {
84
        $instance   = $this->resolveModel();
85
        $connection = $instance->getConnection();
86
        $affected   = [];
87
        $errors     = [];
88
89
        $connection->beginTransaction();
90
        foreach ($request->get('data') as $data) {
91
            $validator = $this->getValidationFactory()
92
                              ->make($data, $this->createRules(), $this->messages() + $this->createMessages(), $this->attributes());
93
            if ($validator->fails()) {
94
                foreach ($this->formatErrors($validator) as $error) {
95
                    $errors[] = $error;
96
                }
97
98
                continue;
99
            }
100
101
            if (method_exists($this, 'creating')) {
102
                $data = $this->creating($instance, $data);
103
            }
104
105
            if (method_exists($this, 'saving')) {
106
                $data = $this->saving($instance, $data);
107
            }
108
109
            $instance->fill($data)->save();
110
111
            if (method_exists($this, 'created')) {
112
                $instance = $this->created($instance, $data);
113
            }
114
115
            if (method_exists($this, 'saved')) {
116
                $instance = $this->saved($instance, $data);
117
            }
118
119
            $instance->setAttribute('DT_RowId', $instance->getKey());
120
            $affected[] = $instance;
121
        }
122
123
        if (! $errors) {
124
            $connection->commit();
125
        } else {
126
            $connection->rollBack();
127
        }
128
129
        return $this->toJson($affected, $errors);
130
    }
131
132
    /**
133
     * Resolve model to used.
@@ 217-265 (lines=49) @@
214
     * @param Request $request
215
     * @return JsonResponse
216
     */
217
    public function edit(Request $request)
218
    {
219
        $connection = $this->getBuilder()->getConnection();
220
        $affected   = [];
221
        $errors     = [];
222
223
        $connection->beginTransaction();
224
        foreach ($request->get('data') as $key => $data) {
225
            $model     = $this->getBuilder()->findOrFail($key);
226
            $validator = $this->getValidationFactory()
227
                              ->make($data, $this->editRules($model), $this->messages() + $this->editMessages(), $this->attributes());
228
            if ($validator->fails()) {
229
                foreach ($this->formatErrors($validator) as $error) {
230
                    $errors[] = $error;
231
                }
232
233
                continue;
234
            }
235
236
            if (method_exists($this, 'updating')) {
237
                $data = $this->updating($model, $data);
238
            }
239
240
            if (method_exists($this, 'saving')) {
241
                $data = $this->saving($model, $data);
242
            }
243
244
            $model->fill($data)->save();
245
246
            if (method_exists($this, 'updated')) {
247
                $model = $this->updated($model, $data);
248
            }
249
250
            if (method_exists($this, 'saved')) {
251
                $model = $this->saved($model, $data);
252
            }
253
254
            $model->setAttribute('DT_RowId', $model->getKey());
255
            $affected[] = $model;
256
        }
257
258
        if (! $errors) {
259
            $connection->commit();
260
        } else {
261
            $connection->rollBack();
262
        }
263
264
        return $this->toJson($affected, $errors);
265
    }
266
267
    /**
268
     * Get elqouent builder of the model.