Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App\Http\Controllers\API;
- use App\Helper\Traits\ApiAuthHelper;
- use Illuminate\Http\Request;
- use App\Http\Controllers\Controller;
- use App\Kecamatan;
- use App\Kelurahan;
- use App\Aktifitas;
- use Validator;
- use Illuminate\Support\Str;
- use File;
- use Image;
- class AktifitasController extends Controller
- {
- use ApiAuthHelper;
- public function getKecamatan()
- {
- $check = $this->authCheck();
- if ($check['success'] == true) {
- $user = $check['user'];
- unset($check['user']);
- $data = Kecamatan::where('kota_id', '6105')->get();
- if (!empty($data)) {
- $res['success'] = true;
- $res['msg'] = "Berhasil mengambil data!";
- $res['kecamatan'] = $data;
- } else {
- $res['success'] = false;
- $res['msg'] = "Gagal mengambil data!";
- }
- $code = 200;
- } else {
- $res = $check;
- $code = $res['code'];
- unset($res['code']);
- }
- return response()->json($res, $code);
- }
- public function getKelurahan($id)
- {
- $check = $this->authCheck();
- if ($check['success'] == true) {
- $user = $check['user'];
- unset($check['user']);
- $data = Kelurahan::where('kecamatan_id', $id)->get();
- if (!empty($data)) {
- $res['success'] = true;
- $res['msg'] = "Berhasil mengambil data!";
- $res['kelurahan'] = $data;
- } else {
- $res['success'] = false;
- $res['msg'] = "Gagal mengambil data!";
- }
- $code = 200;
- } else {
- $res = $check;
- $code = $res['code'];
- unset($res['code']);
- }
- return response()->json($res, $code);
- }
- public function store(Request $request)
- {
- $check = $this->authCheck();
- if ($check['success'] == true) {
- $user = $check['user'];
- unset($check['user']);
- $limit = [
- 'kecamatan_id' => 'required',
- 'kelurahan_id' => 'required',
- 'alamat' => 'required',
- 'rt' => 'required',
- 'rw' => 'required',
- 'wadah' => 'required',
- 'jumlah_wadah' => 'required',
- 'tempat_tinggal' => 'required',
- 'tipe_tempat' => 'required',
- 'isJentik' => 'required',
- 'photo_sebelum' => 'required|max:5000|mimes:jpeg,jpg,bmp,png',
- 'photo_sesudah' => 'required|max:5000|mimes:jpeg,jpg,bmp,png',
- 'jenis_jentik' => 'required',
- ];
- $data = $request->only(array_keys($limit));
- // dd($data);
- $validator = Validator($data, $limit);
- if ($validator->fails()){
- $res['success'] = false;
- $res['msg'] = $validator->messages()->first();
- } else {
- $data['user_id'] = $user->id;
- $data['photo_sesudah'] = $this->uploadImage(
- Image::make($data['photo_sesudah']),
- 'after_'
- );
- $data['photo_sebelum'] = $this->uploadImage(
- Image::make($data['photo_sebelum']),
- 'before_'
- );
- $create = Aktifitas::create($data);
- if (isset($create->id)) {
- $res['success'] = true;
- $res['msg'] = "Berhasil menambah data!";
- } else {
- $res['success'] = false;
- $res['msg'] = "Gagal menambah data!";
- }
- }
- $code = 200;
- } else {
- $res = $check;
- $code = $res['code'];
- unset($res['code']);
- }
- return response()->json($res, $code);
- }
- public function getRiwayat(Request $request)
- {
- $check = $this->authCheck();
- if ($check['success'] == true) {
- $user = $check['user'];
- unset($check['user']);
- $page = $request->get('page') ?: 1;
- $take = 10;
- $getData = Aktifitas::where('user_id', $user->id)
- ->orderBy('created_at', 'DESC')
- ->limit($take)
- ->offset(($page - 1)*$take);
- foreach ($getData->get() as $val) {
- $val['kecamatan_name'] = $val->kecamatan->name;
- $val['kelurahan_name'] = $val->kelurahan->name;
- $data[] = $val;
- }
- if (!empty($data)) {
- $res['success'] = true;
- $res['msg'] = "Berhasil mengambil data!";
- $res['riwayat'] = $data;
- $res['page'] = $page;
- $total_page = (int) ceil(Aktifitas::where('user_id', $user->id)->count()/$take);
- if ($page < $total_page) {
- $res['next_page'] = $page+1;
- }
- if ($page > 1) {
- $res['prev_page'] = $page-1;
- }
- } else {
- $res['success'] = false;
- $res['msg'] = "Tidak ada data!";
- }
- } else {
- $res = $check;
- }
- return response()->json($res);
- }
- public function uploadImage($image, $custom_name = null)
- {
- $filename = $custom_name.Str::random()."_".time().".jpg";
- if ($image->width() > 1024) {
- $image->resize(1024, null, function ($constraint) {
- $constraint->aspectRatio();
- });
- }
- if ($image->height() > 768) {
- $image->resize(null, 768, function ($constraint) {
- $constraint->aspectRatio();
- });
- }
- $image->encode(null, 80);
- $path = public_path('uploads/aktivitas');
- if (!file_exists($path)) {
- File::makeDirectory($path, 0775, true);
- }
- $image->save($path.'/'.$filename);
- return $filename;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement