nouvu / leeloo
Leeloo API - PHP 7.4.0
v2.5.1
2021-12-30 12:06 UTC
Requires
- php: >=7.4
- nouvu/config: ^v3.1
- nouvu/query-storing: ^v1.0.2
This package is auto-updated.
Last update: 2024-12-19 17:21:26 UTC
README
Installation
Composer. Run the following command to install it:
composer require nouvu/leeloo
1.Start
Preparing for launch and configuring the api Leeloo.ai
<?php require 'vendor/autoload.php'; $pdo = new \PDO( ... ); # a tool for working with database (example) /* https://github.com/MouseZver/Query-Storage-Bank */ $storage = new \Nouvu\Database\QueryStorageBank( $pdo ); $storage -> setEvent( 'leeloo_insert', static function ( $db, array $items ): void { $stmt = $db -> prepare( 'INSERT INTO `leeloo_queue_cron` ( `method`, `data`, `response`, `priority` ) VALUES ( ?,?,?,? )' ); foreach ( $items AS $data ) { $stmt -> execute( $data ); } } ); $storage -> setEvent( 'leeloo_delete', static function ( $db, array $ids ): void { $db -> query( sprintf ( 'DELETE FROM `leeloo_queue_cron` WHERE id IN ( %s )', implode ( ',', $ids ) ) ); } ); $storage -> setEvent( 'leeloo_update', static function ( $db, array $items ): void { $stmt = $db -> prepare( 'UPDATE `leeloo_queue_cron` SET `again` = `again` + 1, `response` = ? WHERE `id` = ?' ); foreach ( $items AS $data ) { $stmt -> execute( $data ); } } ); $config = [ 'token' => '********************************************', 'tags' => [ 'Happy_Event_7June2021' => '******ad20e82b2644******', /* ... name => hash */ ], 'templates' => [ 'after_register' => '******174e0fbb000d******', /* ... name => hash */ ], 'order' => [ 'paymentCreditsId' => '******c02eb3c7000d******', 'offer' => [ 'online_trading_offer' => '******eb14c1880011******', /* ... name => hash */ ], ] ]; /* @leeloo<array> - array containing authorization data and other tags, templates, etc. @storage<Nouvu\Database\QueryStorageBank> @send<bool> - send directly(true) or to a queue(false)( recommended ). */ $leeloo = new \Nouvu\Leeloo\Api( $config, $storage, true );
2.Cron
Set the task in cron to run (every 2 minutes) with the following code in the example: https://github.com/MouseZver/Leeloo-API/blob/main/example/cron.php
3.Create table
CREATE TABLE `leeloo_queue_cron` ( `id` INT NOT NULL AUTO_INCREMENT, `method` VARCHAR(20) NOT NULL, `data` JSON NOT NULL, `response` JSON NOT NULL, `priority` INT NOT NULL, `again` INT NOT NULL DEFAULT 1, `created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`)) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_bin;
Methods:
add-tag
/* @person_id<string> - leeloo person_id people @tag<string> - name tag ( no hash ) */ $leeloo -> addTagPeople( string $person_id, string $tag ): \Nouvu\Leeloo\Api
remove-tag
/* @person_id - leeloo person_id people @tag - name tag ( no hash ) */ $leeloo -> removeTagPeople( string $person_id, string $tag ): \Nouvu\Leeloo\Api
send-template
/* @person_id - leeloo $account_id @template - name template ( no hash ) */ $leeloo -> sendTemplate( string $account_id, string $template ): void
send-message
/* @account_id - leeloo account_id @message - message text @sending - send directly(true) or to a queue(false) */ $leeloo -> sendMessage( string $account_id, string $message, bool $sending = true ): void
create order
/* @account_id - leeloo account_id @message - message text @sending - send directly(true) or to a queue(false) */ $leeloo_order_id = $leeloo -> orderPending( string $email, string $phone, string $personId, string $offer ): ?string
update order - RESOLVED
#Обновить-информацию-в-МАНУАЛ-(ручном)-ордере
/* @leeloo_order_id - leeloo order id @price - example: '100' (actual price that you receive from account) @currency - example: 'RUB' @comments - userComments example: 'actual date dont match' */ $leeloo -> orderCompleted( string $leeloo_order_id, int | float $price, string $currency = 'USD', string $comments = 'card' ): void
update order - REJECTED
#Обновить-информацию-в-МАНУАЛ-(ручном)-ордере
/* @leeloo_order_id - leeloo order id @price - example: '100' (actual price that you receive from account) @currency - example: 'RUB' @comments - userComments example: 'actual date dont match' */ $leeloo -> orderFailed( string $leeloo_order_id, int | float $price, string $currency = 'USD', string $comments = 'card' ): void
Create by MouseZver