From 4298498902812584ad297fcabce72d7cdc457102 Mon Sep 17 00:00:00 2001
From: Chris Coley <chris@codingallnight.com>
Date: Tue, 26 Apr 2016 09:53:22 -0700
Subject: [PATCH] Adding initial support for Magento v1.10

---
 .../MailGun/Model/Resource/Email.php          | 27 ++----------
 .../Model/Resource/Email/Collection.php       | 41 +++----------------
 .../Model/Resource/Email/Collection/V1.php    | 37 +++++++++++++++++
 .../Model/Resource/Email/Collection/V2.php    | 37 +++++++++++++++++
 .../MailGun/Model/Resource/Email/V1.php       | 23 +++++++++++
 .../MailGun/Model/Resource/Email/V2.php       | 23 +++++++++++
 .../MailGun/Model/Resource/Event.php          | 11 ++---
 .../Model/Resource/Event/Collection.php       | 14 +++----
 .../Model/Resource/Event/Collection/V1.php    | 10 +++++
 .../Model/Resource/Event/Collection/V2.php    | 10 +++++
 .../MailGun/Model/Resource/Event/V1.php       |  8 ++++
 .../MailGun/Model/Resource/Event/V2.php       |  8 ++++
 12 files changed, 174 insertions(+), 75 deletions(-)
 create mode 100644 app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email/Collection/V1.php
 create mode 100644 app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email/Collection/V2.php
 create mode 100644 app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email/V1.php
 create mode 100644 app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email/V2.php
 create mode 100644 app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event/Collection/V1.php
 create mode 100644 app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event/Collection/V2.php
 create mode 100644 app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event/V1.php
 create mode 100644 app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event/V2.php

diff --git a/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email.php b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email.php
index c7926f5..60228f5 100644
--- a/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email.php
+++ b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email.php
@@ -1,26 +1,7 @@
 <?php
 
-class FreeLunchLabs_MailGun_Model_Resource_Email extends Mage_Core_Model_Resource_Db_Abstract
-{
-    protected function _construct()
-    {
-        $this->_init('freelunchlabs_mailgun/email', 'id');
-    }
-
-    public function deleteEmailTrackingLogs($days = false) {
-        if($days) {   
-            $daysPrior = date("Y-m-d H:i:s", Mage::getModel('core/date')->timestamp(time() - (86400 * $days)));
-            $where = " WHERE date_sent < '{$daysPrior}'";
-        } else {
-            $where = "";
-        }
-     
-        $query = "DELETE FROM {$this->getMainTable()}" . $where;
-
-        Mage::getSingleton('core/resource')
-                ->getConnection('core_write')
-                ->query($query);
- 
-    }
-    
+if (version_compare(Mage::getVersion(), '1.10', '>=')) {
+    class FreeLunchLabs_MailGun_Model_Resource_Email extends FreeLunchLabs_MailGun_Model_Resource_Email_V2 {}
+} else {
+    class FreeLunchLabs_MailGun_Model_Resource_Email extends FreeLunchLabs_MailGun_Model_Resource_Email_V1 {}
 }
diff --git a/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email/Collection.php b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email/Collection.php
index 3e0b54b..412441a 100644
--- a/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email/Collection.php
+++ b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email/Collection.php
@@ -1,38 +1,7 @@
 <?php
 
-class FreeLunchLabs_MailGun_Model_Resource_Email_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract
-{
-    protected function _construct()
-    {
-        parent::_construct();
-
-        $this->_init('freelunchlabs_mailgun/email');
-    }
-    
-    public function getGridCollection() {
-        //Fields
-        $this->addFieldToSelect('id');
-        $this->addFieldToSelect('subject');
-        $this->addFieldToSelect('email_address');
-        $this->addFieldToSelect('mailgun_id');
-        $this->addFieldToSelect('date_sent');
-        $this->addFieldToSelect('customer_id');
-        
-        //Get latest status
-        $this->getSelect()->joinLeft(
-            array('me1' => Mage::getResourceModel('freelunchlabs_mailgun/event')->getMainTable()),
-            'main_table.id = me1.email_id',
-            'event_type as current_status'
-        );
-        
-        $this->getSelect()->joinLeft(
-            array('me2' => Mage::getResourceModel('freelunchlabs_mailgun/event')->getMainTable()),
-            '(main_table.id = me2.email_id AND (me1.timestamp < me2.timestamp OR me1.timestamp = me2.timestamp AND me1.id < me2.id))',
-            false    
-        );
-        
-        $this->getSelect()->where('me2.id IS NULL');
-        
-        return $this;
-    }
-}
\ No newline at end of file
+if (version_compare(Mage::getVersion(), '1.10', '>=')) {
+    class FreeLunchLabs_MailGun_Model_Resource_Email_Collection extends FreeLunchLabs_MailGun_Model_Resource_Email_Collection_V2 {}
+} else {
+    class FreeLunchLabs_MailGun_Model_Resource_Email_Collection extends FreeLunchLabs_MailGun_Model_Resource_Email_Collection_V1 {}
+}
diff --git a/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email/Collection/V1.php b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email/Collection/V1.php
new file mode 100644
index 0000000..3594b6e
--- /dev/null
+++ b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email/Collection/V1.php
@@ -0,0 +1,37 @@
+<?php
+
+class FreeLunchLabs_MailGun_Model_Resource_Email_Collection_V1 extends Mage_Core_Model_Resource_Db_Collection_Abstract
+{
+    protected function _construct() {
+        parent::_construct();
+
+        $this->_init('freelunchlabs_mailgun/email');
+    }
+
+    public function getGridCollection() {
+        // Fields
+        $this->addFieldToSelect('id');
+        $this->addFieldToSelect('subject');
+        $this->addFieldToSelect('email_address');
+        $this->addFieldToSelect('mailgun_id');
+        $this->addFieldToSelect('date_sent');
+        $this->addFieldToSelect('customer_id');
+
+        // Get latest status
+        $this->getSelect()->joinLeft(
+            array('me1' => Mage::getResourceModel('freelunchlabs_mailgun/event')->getMainTable()),
+            'main_table.id = me1.email_id',
+            'event_type as current_status'
+        );
+
+        $this->getSelect()->joinLeft(
+            array('me2' => Mage::getResourceModel('freelunchlabs_mailgun/event')->getMainTable()),
+            '(main_table.id = me2.email_id AND (me1.timestamp < me2.timestamp OR me1.timestamp = me2.timestamp AND me1.id < me2.id))',
+            false
+        );
+
+        $this->getSelect()->where('me2.id IS NULL');
+
+        return $this;
+    }
+}
diff --git a/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email/Collection/V2.php b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email/Collection/V2.php
new file mode 100644
index 0000000..b297459
--- /dev/null
+++ b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email/Collection/V2.php
@@ -0,0 +1,37 @@
+<?php
+
+class FreeLunchLabs_MailGun_Model_Resource_Email_Collection_V2 extends Mage_Core_Model_Mysql4_Collection_Abstract
+{
+    protected function _construct() {
+        parent::_construct();
+
+        $this->_init('freelunchlabs_mailgun/email');
+    }
+
+    public function getGridCollection() {
+        // Fields
+        $this->addFieldToSelect('id');
+        $this->addFieldToSelect('subject');
+        $this->addFieldToSelect('email_address');
+        $this->addFieldToSelect('mailgun_id');
+        $this->addFieldToSelect('date_sent');
+        $this->addFieldToSelect('customer_id');
+
+        // Get latest status
+        $this->getSelect()->joinLeft(
+            array('me1' => Mage::getResourceModel('freelunchlabs_mailgun/event')->getMainTable()),
+            'main_table.id = me1.email_id',
+            'event_type as current_status'
+        );
+
+        $this->getSelect()->joinLeft(
+            array('me2' => Mage::getResourceModel('freelunchlabs_mailgun/event')->getMainTable()),
+            '(main_table.id = me2.email_id AND (me1.timestamp < me2.timestamp OR me1.timestamp = me2.timestamp AND me1.id < me2.id))',
+            false
+        );
+
+        $this->getSelect()->where('me2.id IS NULL');
+
+        return $this;
+    }
+}
diff --git a/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email/V1.php b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email/V1.php
new file mode 100644
index 0000000..1de4748
--- /dev/null
+++ b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email/V1.php
@@ -0,0 +1,23 @@
+<?php
+
+class FreeLunchLabs_MailGun_Model_Resource_Email_V1 extends Mage_Core_Model_Resource_Db_Abstract
+{
+    protected function _construct() {
+        $this->_init('freelunchlabs_mailgun/email', 'id');
+    }
+
+    public function deleteEmailTrackingLogs($days = false) {
+        if ($days) {
+            $daysPrior = date("Y-m-d H:i:s", Mage::getModel('core/date')->timestamp(time() - (86400 * $days)));
+            $where = " WHERE date_sent < '{$daysPrior}'";
+        } else {
+            $where = "";
+        }
+
+        $query = "DELETE FROM {$this->getMainTable()}" . $where;
+
+        Mage::getSingleton('core/resource')
+            ->getConnection('core_write')
+            ->query($query);
+    }
+}
diff --git a/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email/V2.php b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email/V2.php
new file mode 100644
index 0000000..2ff4c06
--- /dev/null
+++ b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email/V2.php
@@ -0,0 +1,23 @@
+<?php
+
+class FreeLunchLabs_MailGun_Model_Resource_Email_V2 extends Mage_Core_Model_Mysql4_Abstract
+{
+    protected function _construct() {
+        $this->_init('freelunchlabs_mailgun/email', 'id');
+    }
+
+    public function deleteEmailTrackingLogs($days = false) {
+        if ($days) {
+            $daysPrior = date("Y-m-d H:i:s", Mage::getModel('core/date')->timestamp(time() - (86400 * $days)));
+            $where = " WHERE date_sent < '{$daysPrior}'";
+        } else {
+            $where = "";
+        }
+
+        $query = "DELETE FROM {$this->getMainTable()}" . $where;
+
+        Mage::getSingleton('core/resource')
+            ->getConnection('core_write')
+            ->query($query);
+    }
+}
diff --git a/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event.php b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event.php
index 8296cd2..34eaebf 100644
--- a/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event.php
+++ b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event.php
@@ -1,10 +1,7 @@
 <?php
 
-class FreeLunchLabs_MailGun_Model_Resource_Event extends Mage_Core_Model_Resource_Db_Abstract
-{
-    protected function _construct()
-    {
-        $this->_init('freelunchlabs_mailgun/event', 'id');
-    }
-    
+if (version_compare(Mage::getVersion(), '1.10', '>=')) {
+    class FreeLunchLabs_MailGun_Model_Resource_Event extends FreeLunchLabs_MailGun_Model_Resource_Event_V2 {}
+} else {
+    class FreeLunchLabs_MailGun_Model_Resource_Event extends FreeLunchLabs_MailGun_Model_Resource_Event_V1 {}
 }
diff --git a/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event/Collection.php b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event/Collection.php
index 3e0cf86..6cc2878 100644
--- a/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event/Collection.php
+++ b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event/Collection.php
@@ -1,11 +1,7 @@
 <?php
 
-class FreeLunchLabs_MailGun_Model_Resource_Event_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract
-{
-    protected function _construct()
-    {
-        parent::_construct();
-
-        $this->_init('freelunchlabs_mailgun/event');
-    }
-}
\ No newline at end of file
+if (version_compare(Mage::getVersion(), '1.10', '>=')) {
+    class FreeLunchLabs_MailGun_Model_Resource_Event_Collection extends FreeLunchLabs_MailGun_Model_Resource_Event_Collection_V2 {}
+} else {
+    class FreeLunchLabs_MailGun_Model_Resource_Event_Collection extends FreeLunchLabs_MailGun_Model_Resource_Event_Collection_V1 {}
+}
diff --git a/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event/Collection/V1.php b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event/Collection/V1.php
new file mode 100644
index 0000000..8749a81
--- /dev/null
+++ b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event/Collection/V1.php
@@ -0,0 +1,10 @@
+<?php
+
+class FreeLunchLabs_MailGun_Model_Resource_Event_Collection_V1 extends Mage_Core_Model_Resource_Db_Collection_Abstract
+{
+    protected function _construct() {
+        parent::_construct();
+
+        $this->_init('freelunchlabs_mailgun/event');
+    }
+}
diff --git a/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event/Collection/V2.php b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event/Collection/V2.php
new file mode 100644
index 0000000..7b452e7
--- /dev/null
+++ b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event/Collection/V2.php
@@ -0,0 +1,10 @@
+<?php
+
+class FreeLunchLabs_MailGun_Model_Resource_Event_Collection_V2 extends Mage_Core_Model_Mysql4_Collection_Abstract
+{
+    protected function _construct() {
+        parent::_construct();
+
+        $this->_init('freelunchlabs_mailgun/event');
+    }
+}
diff --git a/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event/V1.php b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event/V1.php
new file mode 100644
index 0000000..43a2c72
--- /dev/null
+++ b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event/V1.php
@@ -0,0 +1,8 @@
+<?php
+
+class FreeLunchLabs_MailGun_Model_Resource_Event_V1 extends Mage_Core_Model_Resource_Db_Abstract
+{
+    protected function _construct() {
+        $this->_init('freelunchlabs_mailgun/event', 'id');
+    }
+}
diff --git a/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event/V2.php b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event/V2.php
new file mode 100644
index 0000000..e08c902
--- /dev/null
+++ b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event/V2.php
@@ -0,0 +1,8 @@
+<?php
+
+class FreeLunchLabs_MailGun_Model_Resource_Event_V2 extends Mage_Core_Model_Mysql4_Abstract
+{
+    protected function _construct() {
+        $this->_init('freelunchlabs_mailgun/event', 'id');
+    }
+}
-- 
GitLab