]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
move service-matching callbacks to library
authorEvan Prodromou <evan@prodromou.name>
Mon, 2 Jun 2008 17:57:25 +0000 (13:57 -0400)
committerEvan Prodromou <evan@prodromou.name>
Mon, 2 Jun 2008 17:57:25 +0000 (13:57 -0400)
darcs-hash:20080602175725-84dde-c8b3abaedcb8667130da2a080a09630d91969b5c.gz

actions/remotesubscribe.php
lib/omb.php

index 84bd63263bd0d7b21b869c7a07ddc7df55e6b865..d3420f888b77ac0e6f208c931b09aedc66e7b8fa 100644 (file)
@@ -129,7 +129,7 @@ class RemotesubscribeAction extends Action {
 
                # XXX: the following code could probably be refactored to eliminate dupes
                
-               $oauth_service = $xrds->services(array($this, 'matchOAuth'));
+               $oauth_service = $xrds->services(omb_match_service(OAUTH_DISCOVERY));
                
                if (!$oauth_service) {
                        return NULL;
@@ -138,7 +138,7 @@ class RemotesubscribeAction extends Action {
                $xrd = $this->getXRD($oauth_service, $xrds);
                $this->addServices($xrd, $oauth_endpoints, $omb);
 
-               $omb_service = $xrds->services(array($this, 'matchOMB'));
+               $omb_service = $xrds->services(omb_match_service(OMB_NAMESPACE));
 
                if (!$omb_service) {
                        return NULL;
@@ -183,9 +183,7 @@ class RemotesubscribeAction extends Action {
 
        function addServices($xrd, $types, &$omb) {
                foreach ($types as $type) {
-                       $filter = create_function('$s', 
-                                                                         'return RemotesubscribeAction::matchService($s, \''.$type.'\'');
-                       $matches = $xrd->services($filter);
+                       $matches = $xrd->services(omb_match_service($type));
                        if ($matches) {
                                $omb[$type] = $services[0];
                        } else {
@@ -196,22 +194,6 @@ class RemotesubscribeAction extends Action {
                return true;
        }
        
-       function matchOAuth($service) {
-               return $this->matchService($service, OAUTH_DISCOVERY);
-       }
-
-       function matchOMB($service) {
-               return $this->matchService($service, OMB_VERSION_01);
-       }
-
-       function matchService($service, $type) {
-               if ($service && $service->matchTypes(array($type))) {
-                       return TRUE;
-               } else {
-                       return FALSE;
-               }
-       }
-       
        function request_token($omb) {
                $con = omb_oauth_consumer();
 
index 91c1906e30320cb32efe807022b2f011aa4ae61d..9efdaff622b9fc5295714d3275aae86b91468801 100644 (file)
@@ -61,6 +61,19 @@ function omb_hmac_sha1() {
        return $hmac_method;
 }
 
+function omb_service_filter($type) {
+       return create_function('$s', 
+                                                  'return omb_match_service($s, \''.$type.'\'');
+}
+       
+function omb_match_service($service, $type) {
+       if ($service && $service->matchTypes(array($type))) {
+               return TRUE;
+       } else {
+               return FALSE;
+       }
+}
+
 function omb_service_uri($service) {
        $uris = $service->getURIs();
        if (!$uris) {