55 lines
1.3 KiB
PHP
55 lines
1.3 KiB
PHP
<?php
|
|
|
|
class Crunchbutton_Log extends Cana_Table {
|
|
public static function __callStatic($func, $args) {
|
|
$log = new Log;
|
|
$log->level = $func;
|
|
$log->type = $args[0]['type'];
|
|
$log->data = json_encode($args[0]);
|
|
$log->date = date('Y-m-d H:i:s');
|
|
$log->save();
|
|
|
|
if ($log->level == 'critical') {
|
|
// send notifications
|
|
|
|
$env = c::env() == 'live' ? 'live' : 'dev';
|
|
$twilio = new Twilio(c::config()->twilio->{$env}->sid, c::config()->twilio->{$env}->token);
|
|
|
|
foreach (c::config()->text as $supportName => $supportPhone) {
|
|
$nums[] = $supportPhone;
|
|
}
|
|
|
|
/*
|
|
$nums = array('_PHONE_');
|
|
*/
|
|
|
|
$b = $args[0]['action'] ? $args[0]['action'] : $log->data;
|
|
$find = array(',"', '{', '}');
|
|
$replace = array(",\n\t\"", "{\n\t", "\n}");
|
|
$b = str_replace($find, $replace, $b);
|
|
|
|
c::timeout(function() use ($nums, $b, $twilio, $env) {
|
|
|
|
$message = str_split($b,160);
|
|
|
|
foreach ($nums as $num) {
|
|
foreach ($message as $msg) {
|
|
$twilio->account->sms_messages->create(
|
|
c::config()->twilio->{$env}->outgoingTextCustomer,
|
|
'+1'.$num,
|
|
$message
|
|
);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
public function __construct($id = null) {
|
|
parent::__construct();
|
|
$this
|
|
->table('log')
|
|
->idVar('id_log')
|
|
->load($id);
|
|
}
|
|
} |