Source of file ApiLog.php
Size: 2,228 Bytes - Last Modified: 2021-12-24T05:18:55+00:00
/var/www/docs.ssmods.com/process/src/src/Model/ApiLog.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 | <?php namespace IQnection\BigCommerceApp\Model; use SilverStripe\ORM\DataObject; use SilverStripe\Security\Member; use SilverStripe\Security\Security; class BigCommerceLog extends DataObject { private static $table_name = 'BigCommerceLog'; private static $db = [ 'Title' => 'Varchar(255)', 'Request' => 'Text', 'Entry' => 'Text', 'Status' => "Enum('info,error','info')" ]; private static $has_one = [ 'Member' => Member::class ]; private static $summary_fields = [ 'ID' => 'ID', 'Created' => 'Date', 'Title' => 'Title', 'Status' => 'Status' ]; private static $default_sort = 'ID DESC'; public function getCMSFields() { $fields = parent::getCMSFields(); $fields->removeByName(['Entry','Request']); $fields->addFieldToTab('Root.Request', \IQnection\Forms\RawDataField::create('_Request',$this->Request)); $fields->addFieldToTab('Root.Entry', \IQnection\Forms\RawDataField::create('_Entry',$this->Entry)); return $fields; } public function CanEdit($member = null, $context = []) { return false; } public function onBeforeWrite() { parent::onBeforeWrite(); $this->Request = json_encode($_REQUEST); if ($member = Security::getCurrentUser()) { $this->MemberID = $member->ID; } } public static function LogEntry($title, $entry = null, $status = 'info') { if ( (is_array($entry)) || (is_object($entry)) ) { $entry = json_encode($entry); } elseif (is_null($entry)) { $entry = '[ NULL ]'; } elseif (is_bool($entry)) { $entry = ($entry) ? '[ TRUE ]' : '[ FALSE ]'; } $log = BigCommerceLog::create(); $log->Title = $title; $log->Entry = print_r($entry,1); $log->Status = $status; $log->write(); return $log; } public static function exception($title, \Exception $e) { $entry = []; if (method_exists($e, 'getResponseBody')) { $entry['Response Body'] = $e->getResponseBody(); } $entry['message'] = $e->getMessage(); $entry['trace'] = $e->getTraceAsString(); return self::error($title, $entry); } public static function error($title, $entry) { return self::LogEntry($title,$entry,'error'); } public static function info($title, $entry) { return self::LogEntry($title,$entry,'info'); } } |