From 99d434af15d37d41198d8e9882892c2a99eea8d2 Mon Sep 17 00:00:00 2001
From: Dasuntha Gunathunga <Dasuntha.Gunathunga@navitas.com>
Date: Tue, 29 Aug 2017 13:55:34 +1000
Subject: [PATCH] #130 - Delete records after sent them to LRS

---
 classes/log/store.php      | 21 ++++++++++++++++++---
 classes/task/emit_task.php |  1 +
 2 files changed, 19 insertions(+), 3 deletions(-)
 mode change 100644 => 100755 classes/log/store.php
 mode change 100644 => 100755 classes/task/emit_task.php

diff --git a/classes/log/store.php b/classes/log/store.php
old mode 100644
new mode 100755
index 039b55c..fc4fd3b
--- a/classes/log/store.php
+++ b/classes/log/store.php
@@ -150,10 +150,12 @@ class store extends php_obj implements log_writer {
         $sentevents = [];
         foreach ($eventbatches as $translatoreventsbatch) {
             $xapievents = $xapicontroller->create_events($translatoreventsbatch);
-            foreach (array_keys($xapievents) as $key) {
+            $statements = $xapievents['statements'];
+            $response = $xapievents['response'];
+            foreach (array_keys($statements) as $key) {
                 if (is_numeric($key)) {
-                    $k = $xapievents[$key]['context']['extensions'][$translatoreventreadreturn[0]['context_ext_key']]['id'];
-                    $sentevents[$k] = $xapievents['last_action_result'];
+                    $k = $statements[$key]['context']['extensions'][$translatoreventreadreturn[0]['context_ext_key']]['id'];
+                    $sentevents[$k] = $this->getlast_action_result($response);
                 }
             }
             $this->error_log_value('xapievents', $xapievents);
@@ -162,6 +164,19 @@ class store extends php_obj implements log_writer {
         return $sentevents;
     }
 
+    /**
+     * Get last action result from Learning Locker.
+     * @param Object TinCan\LRSResponse
+     *
+     */
+    private function getlast_action_result($response){
+        if ($response->success == 1) {
+            return "success";
+        } else {
+            return "failure";
+        }
+    }
+    
     private function error_log_value($key, $value) {
         $this->error_log('['.$key.'] '.json_encode($value));
     }
diff --git a/classes/task/emit_task.php b/classes/task/emit_task.php
old mode 100644
new mode 100755
index 893c819..6afc88a
--- a/classes/task/emit_task.php
+++ b/classes/task/emit_task.php
@@ -53,6 +53,7 @@ class emit_task extends \core\task\scheduled_task {
         foreach (array_keys($storereturn) as $eventid) {
             if ($storereturn[$eventid] == 'success') {
                 $DB->delete_records_list('logstore_xapi_log', 'id', array($eventid));
+                mtrace("Event id ".$eventid." has been successfully sent to LRS.");
             }
         }
 
-- 
GitLab