Jumat, 22 Januari 2021

Laravel API Client dengan Guzzle


1. composer require guzzlehttp/guzzle


<?php
    namespace App\Http\Controllers;
    use Illuminate\Http\Request;
    use GuzzleHttp\Client;
    use App\Models\Branch;
    class ProductController extends Controller
    {
    public function index()
    {
    $branch = Branch::query();
    $branch->truncate();
    $url = 'https://mnfdev.agrobogautama.co.id/api/getbranch';
    $client = new Client();
    $headers = [
    'Content-Type' => 'application/json',
    'x-api-key' => 'xTYuaskl76510!#$%Zhyuulattr6!',
    ];
    $data = '{}';
    $options = [
    'body' => $data,
    'headers' => $headers,
    ];
    $response = $client->request('get', $url, $options);
    $res = json_decode($response->getBody());
    $data = [];
    $res = $res->result->data;
    foreach($res as $key => $item){
    $data[] = [
    "branch_id"=> $item->branch_id,
    "branch_name"=> $item->branch_name,
    "branch_latitude"=> $item->branch_latitude,
    "branch_longitude"=> $item->branch_longitude,
    "company_id"=> $item->company_id,
    "company_name"=> $item->company_name,
    "region_id"=> $item->region_id,
    "region_name"=> $item->region_name
    ];
    }
    $jd = count($res);
    $chunk = array_chunk($data,$jd);
    foreach($chunk as $d){
    Branch::insert($d);
    }
        }
    }


Senin, 18 Januari 2021

Laravel integrasi dengan midtrans

 Laravel integrasi dengan midtrans

1. composer require midtrans/midtrans-php

2. composer dump-autoload

3. php artisan make:controller MidtransController -r

edit di bagian function index() jadi seperti di bawah.

public function index()
{
// Set your Merchant Server Key
\Midtrans\Config::$serverKey = 'SB-Mid-server-feM6Qc7DQ4tLnsJO_IyhlN2P';
// Set to Development/Sandbox Environment (default). Set to true for Production Environment (accept real transaction).
\Midtrans\Config::$isProduction = false;
// Set sanitization on (default)
\Midtrans\Config::$isSanitized = true;
// Set 3DS transaction for credit card to true
\Midtrans\Config::$is3ds = true;
$params = array(
'transaction_details' => array(
'order_id' => rand(),
'gross_amount' => 10000,
)
);
$snapToken = \Midtrans\Snap::getSnapToken($params);
return view('midtrans',compact('snapToken'));
}

4. buat file midtrans.blade.php di folder resource/view

isi dengan kode di bawah

<html>
<body>
<button id="pay-button">Pay!</button>
<pre><div id="result-json">JSON result will appear here after payment:<br></div></pre>

<!-- TODO: Remove ".sandbox" from script src URL for production environment. Also input your client key in "data-client-key" -->
<script src="https://app.sandbox.midtrans.com/snap/snap.js" data-client-key="<Set your ClientKey here>"></script>
<script type="text/javascript">
document.getElementById('pay-button').onclick = function(){
// SnapToken acquired from previous step
snap.pay('<?=$snapToken?>', {
// Optional
onSuccess: function(result){
/* You may add your own js here, this is just example */ document.getElementById('result-json').innerHTML += JSON.stringify(result, null, 2);
},
// Optional
onPending: function(result){
/* You may add your own js here, this is just example */ document.getElementById('result-json').innerHTML += JSON.stringify(result, null, 2);
},
// Optional
onError: function(result){
/* You may add your own js here, this is just example */ document.getElementById('result-json').innerHTML += JSON.stringify(result, null, 2);
}
});
};
</script>
</body>
</html>

5. setting route web.php


Route::resource('midtrans','MidtransController');

6. php artisan serve

7. akses localhost:8000


oke


Rabu, 13 Januari 2021

Request Ajax Secara Interval


<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<div id="data-id"></div>
<script>
function fetchdata(){
    $.ajax({
        url: "{{ route('user.index') }}",
        type: 'get',
        success: function(data){
            // eksekusi kode di sini
            // alert(data);
            $('#data-id').html(data) // ini contohnya
        },
        complete:function(data){
            setTimeout(fetchdata,100);
        }
    });
}

$(document).ready(function(){
    setTimeout(fetchdata,1000);
});
</script>

Senin, 07 Desember 2020

ngrok

 Download ngrok di sini

ekstrak ngrok.zip

./ngrok authtoken 1lMUILIPXIg1YTdiUJPoCh1xfpU_5eiwWw1uGatsmGcpjdsRm
./ngrok help
./ngrok http 8000
 

Laravel 8 Jwt-Auth

  • laravel new jwt
  • cd jwt
  • composer require tymon/jwt-auth
  • php artisan vendor:publish
  • pilih yang = Tymon\JWTAuth\Providers\LaravelServiceProvider
  • php artisan jwt:secret
  •  
  • edit file app/models/user.php
  • <?php

    namespace App\Models;

    use Illuminate\Contracts\Auth\MustVerifyEmail;
    use Illuminate\Database\Eloquent\Factories\HasFactory;
    use Illuminate\Foundation\Auth\User as Authenticatable;
    use Illuminate\Notifications\Notifiable;

    class User extends Authenticatable
    {
    use HasFactory, Notifiable;

    protected $fillable = [
    'name',
    'email',
    'password',
    ];

    protected $hidden = [
    'password',
    'remember_token',
    ];

    protected $casts = [
    'email_verified_at' => 'datetime',
    ];
    }


     menjadi
  • <?php

    namespace App\Models;

    use Illuminate\Contracts\Auth\MustVerifyEmail;
    use Illuminate\Database\Eloquent\Factories\HasFactory;
    use Illuminate\Foundation\Auth\User as Authenticatable;
    use Illuminate\Notifications\Notifiable;

    use Tymon\JWTAuth\Contracts\JWTSubject;
    class User extends Authenticatable implements JWTSubject
    {
    use HasFactory, Notifiable;

    protected $fillable = [
    'name',
    'email',
    'password',
    ];

    protected $hidden = [
    'password',
    'remember_token',
    ];

    protected $casts = [
    'email_verified_at' => 'datetime',
    ];

    public function getJWTIdentifier()
    {
    return $this->getKey();
    }

    public function getJWTCustomClaims()
    {
    return [];
    }
    }


     
  • php artisan make:controller  Api/Auth/LoginController -i
  •  ubah file app/Http/Controllers/Api/Auth/LoginController.php
  • <?php

    namespace App\Http\Controllers\Auth;

    use App\Http\Controllers\Controller;
    use Illuminate\Http\Request;

    class LoginController extends Controller
    {
    /**
    * Handle the incoming request.
    *
    * @param \Illuminate\Http\Request $request
    * @return \Illuminate\Http\Response
    */
    public function __invoke(Request $request)
    {
    //
    }
    }


     menjadi
  •  
    <?php

    namespace App\Http\Controllers\Auth;

    use App\Http\Controllers\Controller;
    use Illuminate\Http\Request;

    class LoginController extends Controller
    {
    public function __invoke(Request $request)
    {
    $request->validate([
    'email' => 'required',
    'password' => 'required'
    ]);
    $credentials = request(['email', 'password']);
    if (!$token = auth('api')->attempt($credentials)) {
    return response()->json([
    'status' => '0',
    'data' => 'login',
    'result' => [
    'message' => 'Phone atau Password Salah',
    ]
    ], 401);
    }
    $data = [
    'status' => '1',
    'data' => 'login',
    'result' => [
    'token' => $token
    ]
    ];
    return response()->json($data,200);
    }
    }


 

tambah route di api.php


Route::post('login','Api/Auth/LoginController');

 mengedit app/config/auth.php

'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],

'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
],
],

 menjadi

'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],

'api' => [
'driver' => 'jwt',
'provider' => 'users',
'hash' => false,
],
],

cek postman

localhost:8000/api/Login

localhost:8000/api/users

 

Selasa, 01 Desember 2020

DATA TABLES YAJRA

 https://fahmidasclassroom.com/laravel-7-crud-using-datatables/


1. Install yajra datatables

$ composer require yajra/laravel-datatables-oracle:"~9.0"

2. Daftarkan provider dan facade pada file "config/app.php"

'providers'    =>    [
 ....,
 Yajra\DataTables\DataTablesServiceProvider::class,
]
'aliases'        =>    [
'DataTables'    =>    Yajra\DataTables\Facades\DataTables::class,
]

3. Publish Vendor

$ php artisan vendor:publish --provider="Yajra\DataTables\DataTablesServiceProvider" 

4. Buat Model & Migration

$ php artisan make:model Product -m 

 edit file "app\database\migrations\2020_12_24_204248_create_banners_table.php"

    Schema::create('banners', function (Blueprint $table) {
        $table->id();
       //addcode
        $table->string('title');
        $table->text('img');
        $table->boolean('status');
        //encode
        $table->timestamps();
    });

edit file "app\Models\Product.php

    <?php
    namespace App\Models;
    use Illuminate\Database\Eloquent\Factories\HasFactory;
    use Illuminate\Database\Eloquent\Model;

    class Banner extends Model
    {
    use HasFactory;
    protected $fillable = [
    'title',
    'img',
    'status'
    ];
    }

4. Buat Controller

$ php artisan make:controller UserController -r 

5. Buka UserController di folder "app/Http/Controllers" edit code menjadi seperti di bawah.

    

    <?php
    namespace App\Http\Controllers;
    use Illuminate\Http\Request;
    //addcode
    use App\Models\User;
    use DataTables;
    use Redirect,Response;
    //endcode
    class UserController extends Controller
    {
    public function index()
    {
            //addcode
if ($request->ajax()) {
$data = User::latest()->get();
return Datatables::of($data)
->addIndexColumn()
->addColumn('action', function($row){
$action =
            '<a class="btn btn-info" id="show-user" data-toggle="modal" data-id='.$row->id.'>Show</a>
<a class="btn btn-success" id="edit-user" data-toggle="modal" data-id='.$row->id.'>Edit </a>
<meta name="csrf-token" content="{{ csrf_token() }}">
<a id="delete-user" data-id='.$row->id.' class="btn btn-danger delete-user">Delete</a>';
return $action;
})
->rawColumns(['action'])
->make(true);
}
return view('users');
            //endcode  
    }

    public function create()
    {
            //addcode
     return view('menu.banner.create');
            //endcode
    }

     public function store(Request $request)
    {
    //addcode
    $request->validate([
    'title' => 'required',
    'img' => 'required'
    ]);
            $imgName = $request->title.time()."_".$request->file('img')->GetClientOriginalName();
Banner::create([
    'img' => $imgName,
    'title' => $request->title,
    'status' => $request->status
    ]);
    $msg = 'Data Berhasil Di Tambahkan';
    return redirect()->route('banner.index')->with('success',$msg);
    }


public function show($id)
{
//
}

public function edit($id)
{
//
}

public function update(Request $request, $id)
{
//
}

public function destroy($id)
{
//
}
}

 

Jumat, 27 November 2020

Function PHP Yang Bermanfaat

1. Mengurutkan nilay array secara terbalik

array_reverse()

2. Mengambil angka terbesar

max()

3. Mengambil angka terkecil

min()

4.Menghitung Jumlah karakter

count()

5. Mengecek apakah suatu variable sudah terisi

empty()

6. Mengecek suatu variable sudah ada atau belum

isset()

7. Mengacak urutan array

suffle()

8. Mengambil array berdasarkan limit

array_slice()

9. Mengambil satu data secara random

array_rand()

Fungsi is_array()

Fungsi ini digunakan untuk memerikasa apakah apakah data yang dikirim bertipe array.

Fungsi is_int()

Fungsi ini digunakan untuk memerikasa apakah nilai yang dimasukan berupa bilangan bulat.

Fungsi is_float()

Fungsi ini digunakan untuk memerikasa apakah nilai yang dimasukan merupakan bilangan pecahan.

Fungsi is_bool()

Fungsi ini digunakan untuk memerikasa apakah tipy data nilai yang dimasukan berupa boolean.

Fungsi is_null()

Fungsi ini digunakan untuk memerikasa apakah suatu data yang dimasukan adalah null.

 

 

=================================================

Fungsi Validasi

Fungsi empty()

Fungsi Ini digunakan untuk memeriksa apakah suatu variable sudah terisi atau belum. Varible akan bernilai true bila kosong dan true bila kosong.

Fungsi isset()

Fungsi ini digunakan untuk memerikasa apakah suatu variable sudah ada/sudah terbentuk atau belum.

Fungsi unset()

Fungsi ini digunakan untuk menghilangkan variable yang sudah ditentukan.

Pemeriksaan Variable

Fungsi is_array()

Fungsi ini digunakan untuk memerikasa apakah apakah data yang dikirim bertipe array.

Fungsi is_int()

Fungsi ini digunakan untuk memerikasa apakah nilai yang dimasukan berupa bilangan bulat.

Fungsi is_float()

Fungsi ini digunakan untuk memerikasa apakah nilai yang dimasukan merupakan bilangan pecahan.

Fungsi is_bool()

Fungsi ini digunakan untuk memerikasa apakah tipy data nilai yang dimasukan berupa boolean.

Fungsi is_null()

Fungsi ini digunakan untuk memerikasa apakah suatu data yang dimasukan adalah null.

Redirect atau Pengalihan Halaman

Fungsi header()

Fungsi ini dingunakan untuk mengalihkan ke halaman yang dituju. Format penulisannya adalah sebagi berikut:

Fungsi dalam upload file

Fungsi $_FILES

$_FILES[’fileupload’][’name’] – Mengambil Nama file

$_FILES[’fileupload’][’size’] – Mengambil Ukuran file

$_FILES[’fileupload’][’type’] – Mengambil Type file

$_FILES[’fileupload’][’tmp_name’] – Mengambil nama file dari tempat penyimpanan sementara

$_FILES[’fileupload’][’error’] -Mengetahui kesalahan saat upload file

Fungsi-fungsi diatas dapat digunakan saat mengupload file ke server untuk mengambil nilai nilai yang dibutuhkan.

Fungsi chmod()

Fungsi ini untuk mengubah mode pada file yang diupload. Format penulisan sebagai berikut:

Fungsi untuk Modifikasi String

Fungsi trim()

Fungsi ini untuk menghilangkan atau memotong spasi kosong pada bagian awal dan akhir dari string. Selain trim() ada juga ltrim() dan rtrim(). Fungsi ltrim() unutk menghilangkan spasi sebelah kiri dan rtrim() unutk menghilangkan spasi sebelah kanan.

Fungsi substr()

Fungsi ini untuk mengambil sebagian data dari string dimulai dari awal yang ditunjukan oleh argument ke dua dan jumlah string yang ditunjukan oleh argumen ke tiga. Format dasar fungsi ini adalah substr($string,$mulai,$jumlah).

Fungsi strstr()

Fungsi ini untuk menampilkan karakter yang dimulai dari karakter yang ditemukan pada string sampai pada runtutan yang dicari.

Fungsi str_replace()

Fungsi ini untuk menggantikan suatu string tertentu dengan string lainnya. Format penulisnnya adalah str_replace($cari, $ganti,$string).

Fungsi explode()

Fungsi ini untuk memisahkan teks berdasarkan kriteria tertentu. Format Penulisannya explode($pemisah, $string).

Fungsi implode()

Fungsi ini untuk menggabungkan isi dalam array menjadi satu string dan dipisahkan menggunakan katakter tertentu. Format Penulisannya implode($pemisah, $array).

Fungsi split()

Fungsi ini untuk memisahkan array ataupun text menggunakan batasan argumen eksprsi. Format Penulisannya split("[/.-]", $string). Contoh :

Fungsi strlen()

Fungsi ini untuk menghitung jumlah karakter pada suatu string.

Fungsi count()

Fungsi ini untuk menghitung jumlah data dalam array.

Fungsi sizeof()

Fungsi ini untuk fungsinya sama dengan fungsi count().

Fungsi strtolower()

Fungsi ini untuk mengubah seluruh string menjadi huruf kecil/lower case.

Fungsi strtoupper()

Fungsi ini untuk mengubah string menjadi huruf kapital semua / upper case.

Fungsi ucfirst()

Fungsi ini untuk mengubah huruf bertama kalimat menjadi kapital / upper case.

Fungsi ucwords()

Fungsi ini untuk mengubah huruf bertama katat menjadi kapital / upper case.

Fungsi Pengatur String

Fungsi get_magic_quota_gpc()

Fungsi ini untuk memeriksa apakah magic_quota_gpc() sudah aktif atau belum, sedangkan fungsi magic_quota_gpc() sendiri memiliki fungsi untuk mengatur penggunaan tanda ’ dan ” agar tidak terjadi kesalahan saat memasukan kedalam data base.

Fungsi addslashes()

Fungsi ini untuk menambahkan slash “/”  pada setiap text yang menggunakan tanda kutip.

Fungsi stripslashes()

Fungsi ini untuk menghilangkan slash “/”  pada setiap text yang menggunakan tanda kutip.

Fungsi htmlentities()

Fungsi ini untuk menampilkan data sesuai dengan yang dimasukan, biasa di gunkan pada form edit/update data.

Fungsi strip_tags()

Fungsi ini untuk menghapus seluruh tag html yang ada dalam string.

 

 

 

 

Laravel Cara Membuat Helper Function Global

1. Buat file app/Helpers/Global.php

2. Buka file composer.json

3. Cari psr-4

Tambahkan path file globalnya

"autoload": {
"psr-4": {
"App\\": "app/",
"Database\\Factories\\": "database/factories/",
"Database\\Seeders\\": "database/seeders/"
}
},

Menjadi

"autoload": {
"psr-4": {
"App\\": "app/",
"Database\\Factories\\": "database/factories/",
"Database\\Seeders\\": "database/seeders/"
},
"files": [
"app/Helpers/Global.php"
]
},

4. Ketikan perintah

$ composer dump-autoload



create project flutter with getx

Get CLI adalah alat yang sangat berguna untuk mempercepat pengembangan aplikasi Flutter dengan memanfaatkan arsitektur GetX . Berikut adala...