Code Duplication    Length = 57-57 lines in 2 locations

src/Http/Controllers/PrestasiController.php 2 locations

@@ 181-237 (lines=57) @@
178
     * @param  \App\Prestasi  $prestasi
179
     * @return \Illuminate\Http\Response
180
     */
181
    public function store(Request $request)
182
    {
183
        $prestasi = $this->prestasi;
184
185
        $validator = Validator::make($request->all(), [
186
            'nomor_un'              => "required|exists:{$this->siswa->getTable()},nomor_un|unique:{$this->prestasi->getTable()},nomor_un,NULL,id,deleted_at,NULL",
187
            'master_prestasi_id'    => "required|exists:{$this->master_prestasi->getTable()},id",
188
            'nama_lomba'            => 'required|max:255',
189
            // 'nilai'             => 'required|numeric|min:0|max:100',
190
            'user_id'               => "required|exists:{$this->user->getTable()},id",
191
        ]);
192
193
        if ($validator->fails()) {
194
            $error                  = true;
195
            $response['message']    = $validator->errors()->first();
196
        } else {
197
            $prestasi_master_prestasi_id    = $request->input('master_prestasi_id');
198
            $master_prestasi                = $this->master_prestasi->findOrFail($prestasi_master_prestasi_id);
199
200
            $prestasi->nomor_un             = $request->input('nomor_un');
201
            $prestasi->master_prestasi_id   = $prestasi_master_prestasi_id;
202
            $prestasi->nama_lomba           = $request->input('nama_lomba');
203
            $prestasi->nilai                = $master_prestasi->nilai;
204
            $prestasi->user_id              = $request->input('user_id');
205
206
            $nilai = $this->nilai->updateOrCreate(
207
                [
208
                    'nomor_un'  => $prestasi->nomor_un,
209
                ],
210
                [
211
                    'prestasi'      => $prestasi->nilai,
212
                    'kegiatan_id'   => null,
213
                    'total'         => null,
214
                    'user_id'       => $prestasi->user_id,
215
                ]
216
            );
217
218
            DB::beginTransaction();
219
220
            if ($prestasi->save() && $nilai->save())
221
            {
222
                DB::commit();
223
224
                $error      = false;
225
                $response['message'] = 'success';
226
            } else {
227
                DB::rollBack();
228
229
                $error                  = true;
230
                $response['message']    = 'Failed';
231
            }
232
        }
233
234
        $response['status'] = true;
235
236
        return response()->json($response);
237
    }
238
239
    /**
240
     * Store a newly created resource in storage.
@@ 289-345 (lines=57) @@
286
     * @param  \App\Prestasi  $prestasi
287
     * @return \Illuminate\Http\Response
288
     */
289
    public function update(Request $request, $id)
290
    {
291
        $prestasi = $this->prestasi;
292
293
        $validator = Validator::make($request->all(), [
294
            'nomor_un'              => "required|exists:{$this->siswa->getTable()},nomor_un|unique:{$this->prestasi->getTable()},nomor_un,{$id},id,deleted_at,NULL",
295
            'master_prestasi_id'    => "required|exists:{$this->master_prestasi->getTable()},id",
296
            'nama_lomba'            => 'required|max:255',
297
            // 'nilai'             => 'required|numeric|min:0|max:100',
298
            'user_id'               => "required|exists:{$this->user->getTable()},id",
299
        ]);
300
301
        if ($validator->fails()) {
302
            $error                  = true;
303
            $response['message']    = $validator->errors()->first();
304
        } else {
305
            $prestasi_master_prestasi_id    = $request->input('master_prestasi_id');
306
            $master_prestasi                = $this->master_prestasi->findOrFail($prestasi_master_prestasi_id);
307
308
            $prestasi->nomor_un             = $request->input('nomor_un');
309
            $prestasi->master_prestasi_id   = $prestasi_master_prestasi_id;
310
            $prestasi->nama_lomba           = $request->input('nama_lomba');
311
            $prestasi->nilai                = $master_prestasi->nilai;
312
            $prestasi->user_id              = $request->input('user_id');
313
314
            $nilai = $this->nilai->updateOrCreate(
315
                [
316
                    'nomor_un'  => $prestasi->nomor_un,
317
                ],
318
                [
319
                    'prestasi'      => $prestasi->nilai,
320
                    'kegiatan_id'   => null,
321
                    'total'         => null,
322
                    'user_id'       => $prestasi->user_id,
323
                ]
324
            );
325
326
            DB::beginTransaction();
327
328
            if ($prestasi->save() && $nilai->save())
329
            {
330
                DB::commit();
331
332
                $error      = false;
333
                $response['message'] = 'success';
334
            } else {
335
                DB::rollBack();
336
337
                $error                  = true;
338
                $response['message']    = 'Failed';
339
            }
340
        }
341
342
        $response['status'] = true;
343
344
        return response()->json($response);
345
    }
346
347
    /**
348
     * Remove the specified resource from storage.