theposeidonas / laravel-parasut-api
Paraşüt v4 API for Laravel Projects
Fund package maintenance!
theposeidonas
Installs: 1 313
Dependents: 0
Suggesters: 0
Security: 0
Stars: 10
Watchers: 1
Forks: 4
Open Issues: 1
Requires
- ext-json: *
- guzzlehttp/guzzle: ^7.8
- illuminate/support: ^8.0|^9.0|^10.0|^11.0|^12.0
- illuminate/validation: ^8.0|^9.0|^10.0|^11.0|^12.0
Requires (Dev)
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^8.0
README
Paraşüt API Laravel Package
Laravel için yazılmış Paraşüt V4 API paketi.
Dökümantasyon »
Demo
·
Buglar
·
İstekler
Laravel Paraşüt API
Bu proje, Laravel için oluşturulmuş kolayca Paraşüt V4 API ile bağlantı kurmanızı sağlayacak bir paket. Paraşüt API bilgilerinizi .env dosyasına girdikten sonra tekrar tekrar Auth işlemleri ile uğraşmadan kolayca istediğiniz fonksiyonu istediğiniz yerde çalıştırabilirsiniz.
Please go to the README.en.md file to read the English documentation.
Neden ihtiyaç var?
Laravel için yazılmış hızlı ve basit bir Paraşüt API paketi neredeyse hiç bulunmuyor. OAuth2 işlemlerini otomatik olarak yapan, token süresi dolmuşsa otomatik olarak yeni token alan ve Controller içerisine sadece yapacağınız işlemi yazdıran sade bir pakete ihtiyaç duyuyorduk.
Bug ve Hataları lütfen Issues kısmından bildirin.
(Başa dön)
Başlarken
Paraşüt ile mutlaka iletişime geçip gerekli bilgilerinizi alın. Bu hem deneme hesabı hem de normal hesap için geçerlidir.
Projenize ekleme
Laravel projenizde terminali açarak şu komutu çalıştırın;
composer require theposeidonas/laravel-parasut-api
Eğer gerekiyorsa config dosyasını paylaşmak için şu komutu çalıştırın;
php artisan vendor:publish --tag=parasut-config --force
Eğer Laravel versiyonunuz eskiyse veya Auto-Discovery kapalıysa, her yerde kullanmak için config/app.php dosyasında 'aliases' kısmına şu kodu ekleyin;
'Parasut' => Theposeidonas\LaravelParasutApi\Facades\Parasut::class,
Konfigürasyon
Kullanım için projenize eklemeyi yaptıktan sonra, .env dosyası içerisinde şu satırları ekleyip düzeltmelisiniz;
PARASUT_USERNAME="demo@parasut.com" // Username PARASUT_PASSWORD="XXXXXXXXX" // Password PARASUT_COMPANY_ID="123123" // Company ID PARASUT_CLIENT_ID="XXXXXXXXXXXXXXXXX" // Paraşüt Client ID PARASUT_CLIENT_SECRET="XXXXXXXXXXXXXXXXX" // Paraşüt Client Secret PARASUT_REDIRECT_URI="urn:ietf:wg:oauth:2.0:oob" // Paraşüt Redirect URI, değiştirmenize gerek yok
(Başa dön)
Kullanım
Kullanacağınız Controller içerisine paketi dahil etmeniz gerekiyor;
use Theposeidonas\LaravelParasutApi\Facades\Parasut;
Sınıflar
Tüm ayarlamaları ve konfigürasyonlarınızı yaptıktan sonra kullanacağınız Controller içerisinde belirli sınıfları çağırabilirsiniz. Bu sınıflar şu şekilde;
/* Satışlar */ Parasut::Bill(); // Satış faturası https://apidocs.parasut.com/#tag/SalesInvoices Parasut::Customer(); // Müşteri https://apidocs.parasut.com/#tag/Contacts /* Giderler */ Parasut::Receipt(); // Fiş - Fatura https://apidocs.parasut.com/#tag/PurchaseBills Parasut::Bank(); // Banka giderleri https://apidocs.parasut.com/#tag/BankFees Parasut::Salary(); // Maaş giderleri https://apidocs.parasut.com/#tag/Salaries Parasut::Tax(); // Vergi giderleri https://apidocs.parasut.com/#tag/Taxes Parasut::Supplier(); // Tedarikçi https://apidocs.parasut.com/#tag/Contacts Parasut::Employee(); // Çalışan https://apidocs.parasut.com/#tag/Employees /* Resmileştirme */ Parasut::Inbox(); // E-Fatura Gelen Kutusu https://apidocs.parasut.com/#tag/EInvoiceInboxes Parasut::EArchive(); // E-Arşiv https://apidocs.parasut.com/#tag/EArchives Parasut::EBill(); // E-Fatura https://apidocs.parasut.com/#tag/EInvoices Parasut::ESmm(); // E SMM https://apidocs.parasut.com/#tag/ESmms /* Nakit */ Parasut::Account(); // Kasa ve Banka https://apidocs.parasut.com/#tag/Accounts Parasut::Transaction(); // İşlem https://apidocs.parasut.com/#tag/Transactions /* Stok */ Parasut::Product(); // Ürün https://apidocs.parasut.com/#tag/Products Parasut::Warehouse(); // Depo https://apidocs.parasut.com/#tag/Warehouses Parasut::Waybill(); // İrsaliye https://apidocs.parasut.com/#tag/ShipmentDocuments Parasut::StockMovement(); // Stok Hareketi https://apidocs.parasut.com/#tag/StockMovements /* Ayarlar */ Parasut::Category(); // Kategori https://apidocs.parasut.com/#tag/ItemCategories Parasut::Tag(); // Etiket https://apidocs.parasut.com/#tag/Tags /* Other */ Parasut::ApiHome(); // Api Home https://apidocs.parasut.com/#tag/ApiHome Parasut::TrackableJob(); // Trackable Job https://apidocs.parasut.com/#tag/TrackableJobs Parasut::Webhook(); // Webhooks https://apidocs.parasut.com/#tag/Webhooks
Bunlar dışında kalan, ürünlerin stok seviyesini kontrol etmek için Parasut::Product()->inventory($id);
kullanmanız gerekir.
Fonksiyonlar
Paraşüt içindeki sınıfları kullanırken, https://apidocs.parasut.com sayfasında yer alan fonksiyonları kullanabilirsiniz.
Örneğin;
Müşteri index fonksiyonu için: Parasut::Customer()->index();
Müşteri create fonksiyonu için: Parasut::Customer()->create($data);
Müşteri show fonksiyonu için: Parasut::Customer()->show($id);
Müşteri edit fonksiyonu için: Parasut::Customer()->edit($id, $data);
şeklinde kullanabilirsiniz. Dökümanlarda gösterilen tüm fonksiyonlar mevcuttur.
Veri Yapılandırması
Bir sınıfta create fonksiyonu için veri gönderirken, https://apidocs.parasut.com tarafında bahsedilen şekilde veri göndermelisiniz. Eğer gerekli parametreleri göndermezseniz hata alırsınız.
Ayrıca veriyi JSON olarak değil, Array olarak göndermeniz gereklidir. Paket kendisi JSON'a çevirerek gönderim yapacaktır.
Örnek Müşteri oluşturma;
$customer = [ 'data'=>[ 'type'=>'contacts', 'attributes'=>[ 'email'=>'demo@parasut.com', 'name'=>'İsim Soyisim', 'contact_type'=>'person', 'tax_number'=>'11111111111', 'account_type'=>'customer' ] ] ]; $response = Parasut::Customer()->create($customer);
Eğer işlemleriniz başarılıysa size şöyle bir Array geri dönecektir;
Array ( [success] => true // İşlem başarılı ise true [error] => false // İşlem başarısız ise true [body] => stdClass Object // Paraşüt dökümanlarında yazan response -> stdClass Object olarak [status] => 200 // Response Status )
Query Parameters ()
Filtreleme ve query parametrelerini gönderme v1.2.0-beta ile dahil edilmiştir. Artık dökümanlarda yazan Query Parameters yani URL sonuna eklenen parametreleri gönderebilirsiniz. Parametreler zorunlu değildir fakat gönderdiğiniz endpoint'e göre değişiklik gösterilir ve doğrulanır. Gerekenden farklı bir parametre gönderemezsiniz.
UYARI: v1.2.0'dan önce Inbox içerisinde vkn ile gelen parametre kodu değiştirildi. Yani eğer projenizde Parasut::Inbox->index($vkn)
şeklinde bir kullanım yapıyorsanız, bunu uygun şekilde aşağıdaki gibi bir array olarak göndermeniz gerekiyor.
$parameters = [ 'filter' => [ // Sadece integer kabul edilir. 'vkn' => 1234567890 ], // Bu kısım zorunlu değil. 'page' => [ 'number' => 1, 'size'=> 15 ] ]; Parasut::Inbox->index($parameters);
Örnek Parametre Gönderimi
$parameters = [ 'filter' => [ 'name' => 'isim', 'currency' => 'TRY', 'bank_name' => 'Banka ismi', 'bank_branch' => 'Banka Şubesi', 'account_type' => 'Hesap Tipi', 'iban' => 'TR00 0000 0000 0000 0000 0000 00' ], 'sort' => 'balance', 'page' => [ 'number' => 1, 'size' => 15 ] ]; $response = Parasut::Account()->index($id, $parameters);
(Başa dön)
TODO
Eksikleri ve hataları Issues kısmından yazabilirsiniz.
- Fonksiyonlar dahil edildi
- Eksik diğer kısımlar eklendi. (Others)
- Staging fonksiyonları çıkartıldı.
- Fonksiyonların ekstra filtreleri dahil edilecek (Query Parameters)
Lisanslama
MIT Lisansı altında dağıtılmaktadır. Daha fazla bilgi için 'LICENSE' dosyasına bakın.
(Başa dön)
İletişim
Baran Arda - @theposeidonas - baran@webremium.com
Proje Linki: https://github.com/theposeidonas/laravel-parasut-api
(Başa dön)