Refactor a bit.
authorMichael J. Rubinsky <mrubinsk@horde.org>
Fri, 18 Sep 2009 04:35:11 +0000 (00:35 -0400)
committerMichael J. Rubinsky <mrubinsk@horde.org>
Tue, 29 Sep 2009 20:54:01 +0000 (16:54 -0400)
Move Kronolith_Resource::checkResources to Kronolith_Resource_*::getResponse()
and remove the responsibilty of adding the event.

kronolith/attendees.php
kronolith/lib/Resource.php
kronolith/lib/Resource/Single.php

index 7dcd112..9f67594 100644 (file)
@@ -101,6 +101,7 @@ case 'add':
 
     // Any new resources?
     if (!empty($newResource)) {
+
         /* Get the requested resource */
         $resource = Kronolith::getDriver('Resource')->getResource($newResource);
 
index 59f90ff..fdfccf8 100644 (file)
@@ -105,54 +105,4 @@ class Kronolith_Resource
         return false;
     }
 
-    /**
-     * Function to check availability and set response status for each resource
-     * attached to the event.
-     *
-     * @param Kronolith_Event $event  The event object to check the resources of
-     *
-     * @return void
-     */
-    static public function checkResources($event)
-    {
-        foreach ($event->getResources() as $id => $resource) {
-
-            /* Get the resource */
-            $r = Kronolith::getDriver('Resource')->getResource($id);
-
-            /* Determine if we have to calculate, or just auto-reply */
-            $type = $r->getResponseType();
-            switch($type) {
-            case Kronolith_Resource::RESPONSETYPE_ALWAYS_ACCEPT:
-                $r->addEvent($event);
-                $event->addResource($r, Kronolith::RESPONSE_ACCEPTED);
-                break;
-            case Kronolith_Resource::RESPONSETYPE_AUTO:
-                if ($r->isFree($event)) {
-                    $r->addEvent($event);
-                    $event->addResource($r, Kronolith::RESPONSE_ACCEPTED);
-                } else {
-                   $event->addResource($r, Kronolith::RESPONSE_DECLINED);
-                }
-                break;
-
-            case Kronolith_Resource::RESPONSETYPE_ALWAYS_DECLINE:
-                $event->addResource($r, Kronolith::RESPONSE_DECLINED);
-                break;
-
-            case Kronolith_Resource::RESPONSETYPE_NONE:
-                $event->addResource($r, Kronolith::RESPONSE_NONE);
-                break;
-
-            case Kronolith_Resource::RESPONSETYPE_MANUAL:
-                // Would be nice to be able to utilize iTips, but
-                // no idea how that would work right now...resources are not
-                // user accounts etc...for now, just set as NONE
-                $event->addResource($r, Kronolith::RESONSE_NONE);
-                break;
-            }
-
-        }
-    }
-
 }
\ No newline at end of file
index eec8c09..f7e31b0 100644 (file)
@@ -117,6 +117,32 @@ class Kronolith_Resource_Single extends Kronolith_Resource_Base
     }
 
     /**
+     * Check avilability and return an appropriate Kronolith response code.
+     *
+     * @param Kronolith_Event $event  The event to check on
+     *
+     * @return integer Kronolith::RESPONSE* constant
+     */
+    function getResponse($event)
+    {
+        switch($this->getResponseType()) {
+        case Kronolith_Resource::RESPONSETYPE_ALWAYS_ACCEPT:
+            return Kronolith::RESPONSE_ACCEPTED;
+        case Kronolith_Resource::RESPONSETYPE_AUTO:
+            if ($this->isFree($event)) {
+                return Kronolith::RESPONSE_ACCEPTED;
+            } else {
+                return Kronolith::RESPONSE_DECLINED;
+            }
+        case Kronolith_Resource::RESPONSETYPE_ALWAYS_DECLINE:
+            return Kronolith::RESPONSE_DECLINED;
+        case Kronolith_Resource::RESPONSETYPE_NONE:
+        case Kronolith_Resource::RESPONSETYPE_MANUAL:
+            return Kronolith::RESPONSE_NONE;
+        }
+    }
+
+    /**
      * Obtain the freebusy information for this resource.
      *
      * @return unknown_type