/**
  * Insert events in bulk to the database. Overrides helper_writer.
  * @param array $events raw event data
  *
  */
 protected function insert_event_entries(array $events)
 {
     // Initializes required services.
     $xapicontroller = new xapi_controller($this->connect_xapi_repository());
     $moodlecontroller = new moodle_controller($this->connect_moodle_repository());
     $translatorcontroller = new translator_controller();
     // Emits events to other APIs.
     foreach ($events as $event) {
         // $this->error_log('');
         // $this->error_log_value('event', $event);
         $moodleevent = $moodlecontroller->createEvent($event);
         // $this->error_log_value('moodleevent', $moodleevent);
         $translatorevent = $translatorcontroller->createEvent($moodleevent);
         // $this->error_log_value('translatorevent', $translatorevent);
         $xapievent = $xapicontroller->createEvent($translatorevent);
         // $this->error_log_value('xapievent', $xapievent);
     }
 }
Пример #2
0
 public function process_events(array $events)
 {
     // Initializes required services.
     $xapicontroller = new xapi_controller($this->connect_xapi_repository());
     $moodlecontroller = new moodle_controller($this->connect_moodle_repository());
     $translatorcontroller = new translator_controller();
     // Emits events to other APIs.
     foreach ($events as $index => $event) {
         $events[$index] = (array) $event;
     }
     $this->error_log('');
     $this->error_log_value('events', $events);
     $moodleevents = $moodlecontroller->createEvents($events);
     $this->error_log_value('moodleevent', $moodleevents);
     $translatorevents = $translatorcontroller->createEvents($moodleevents);
     $this->error_log_value('translatorevents', $translatorevents);
     if (empty($translatorevents)) {
         return;
     }
     // Split statements into batches.
     $eventbatches = array($translatorevents);
     $maxbatchsize = get_config('logstore_xapi', 'maxbatchsize');
     if (!empty($maxbatchsize) && $maxbatchsize < count($translatorevents)) {
         $eventbatches = array_chunk($translatorevents, $maxbatchsize);
     }
     foreach ($eventbatches as $translatoreventsbatch) {
         $xapievents = $xapicontroller->createEvents($translatoreventsbatch);
         $this->error_log_value('xapievents', $xapievents);
     }
 }