tousanco / laravel-zaya
using this package you can easily implement the zaya.io link shortener in your laravel application.
Installs: 2 252
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- php: >=7.1.3
- laravel/framework: 5.*|6.*|7.*|8.*|9.*|10.*
- tousanco/php-zaya: ^1.1
Requires (Dev)
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.0
README
using this package you can easily implement the Zaya link shortener in your php application.
Installation
You can install the package via composer:
composer require tousanco/laravel-zaya
Usage
First you need to get your API key from Zaya
then add the api key to your env :
ZAYA_API_KEY=*************your-key*****************
Links
use Tousanco\LaravelZaya\Link; $listParams = [ // All options nullable // search (string) 'search' => 'search key', // by (in:title,alias,url) null for all. 'by' => 'title', // ids comma separated (string) 'ids' => '1,2,3,4,5', /* * status (int|in:0,1,2,3,4,5,6) * 0 or null for all * 1 for active * 2 for pending * 3 for deactivate * 4 for suspended * 5 for expired */ 'status' => 1, // (int) space-id 'space' => 1, // (int) domain-id 'domain' => 1, // favorites (bool|in:1) null for false 'favorites' => 1, /* * sort (string|in:desc,asc,max,min) * max for maximum clicks * min for minimum clicks */ 'sort' => 'desc', ]; $links = Link::all($listParams); $createOrUpdateParams = [ // All options nullable 'alias' => 'string', 'password' => 'string', 'space' => 'int', 'domain' => 'int', 'disabled' => 'int', 'public' => 'int', 'description' => 'string', 'expiration_url' => 'url', 'expiration_date' => 'Y-m-d', 'expiration_time' => 'HH:MM', 'expiration_clicks' => 'int', ]; $link = Link::create('https://example.com', $createOrUpdateParams); $linkId = 1; $link = Link::details($linkId); $link = Link::update($linkId, $createOrUpdateParams); Link::delete($linkId);
Space
use Tousanco\LaravelZaya\Space; $listParams = [ // All options nullable 'search' => 'string key', // sort (string|in:desc,asc) 'sort' => 'desc', ]; $spaces = Space::all($listParams); $params = ['name' => 'sample space', 'color' => '#fff']; $space = Space::create($params); $spaceId = 1; $space = Space::details($spaceId); $space = Space::update($spaceId, $params); Space::delete($spaceId);
Domain
use Tousanco\LaravelZaya\Domain; $listParams = [ // All options nullable 'search' => 'string key', // sort (string|in:desc,asc) 'sort' => 'desc', ]; $domains = Domain::all($listParams); $params = [ 'name' => 'yourdomain.com', // index_page and not_found_page nullable. 'index_page' => 'url', 'not_found_page' => 'url', ]; $domain = Domain::create($params); $domainId = 1; $domain = Domain::details($domainId); // You cannot update the domain name $domain = Domain::update($domainId, $params); Domain::delete($domainId);
Stats
use Tousanco\LaravelZaya\Stats; $linkId = 1; // The default value is the current day's $params = ['from' => 'Y-m-d H:i:s', 'to' => 'Y-m-d H:i:s']; $total = Stats::total($linkId, $params); $clicks = Stats::clicks($linkId, $params); $referrers = Stats::referrers($linkId, $params); $countries = Stats::countries($linkId, $params); $languages = Stats::languages($linkId, $params); $browsers = Stats::browsers($linkId, $params); $devices = Stats::devices($linkId, $params); $operatingSystems = Stats::operatingSystems($linkId, $params);
Account
use Tousanco\LaravelZaya\Account; $accountDetails = Account::details();
Timeout
You can set timeout in two ways:
- You can set timeout on config file
- When you call the methods of sending the request
use Tousanco\LaravelZaya\Link; $timeout = 5; $linkId = 22; Link::details($linkId, $timeout);
Documentation
See the documentation for more details.