[CalendarServer-changes] [13286] twext/trunk/twext/who/opendirectory/_service.py

source_changes at macosforge.org source_changes at macosforge.org
Tue Apr 15 14:32:47 PDT 2014


Revision: 13286
          http://trac.calendarserver.org//changeset/13286
Author:   wsanchez at apple.com
Date:     2014-04-15 14:32:46 -0700 (Tue, 15 Apr 2014)
Log Message:
-----------
Add _buildQuery method.

Modified Paths:
--------------
    twext/trunk/twext/who/opendirectory/_service.py

Modified: twext/trunk/twext/who/opendirectory/_service.py
===================================================================
--- twext/trunk/twext/who/opendirectory/_service.py	2014-04-15 21:31:50 UTC (rev 13285)
+++ twext/trunk/twext/who/opendirectory/_service.py	2014-04-15 21:32:46 UTC (rev 13286)
@@ -370,15 +370,8 @@
         else:
             matchType = ODMatchType.any.value
 
-        query, error = ODQuery.queryWithNode_forRecordTypes_attribute_matchType_queryValues_returnAttributes_maximumResults_error_(
-            self.node,
-            (t.value for t in recordTypes),
-            None,
-            matchType,
-            queryString,
-            [a.value for a in ODAttribute.iterconstants()],
-            0,
-            None
+        query, error = self._buildQuery(
+            recordTypes, matchType, queryString
         )
 
         if error:
@@ -423,9 +416,6 @@
         else:
             caseInsensitive = 0x0
 
-        fetchAttributes = [a.value for a in ODAttribute.iterconstants()]
-        maxResults = 0
-
         # For OpenDirectory, use guid for uid:
         if expression.fieldName is self.fieldName.uid:
             expression.fieldName = self.fieldName.guid
@@ -469,15 +459,10 @@
             else:
                 queryValue = unicode(expression.fieldValue)
 
-        query, error = ODQuery.queryWithNode_forRecordTypes_attribute_matchType_queryValues_returnAttributes_maximumResults_error_(
-            self.node,
+        query, error = self._buildQuery(
             recordTypes,
-            queryAttribute,
             matchType | caseInsensitive,
-            queryValue,
-            fetchAttributes,
-            maxResults,
-            None
+            queryString
         )
 
         if error:
@@ -492,6 +477,22 @@
         return query
 
 
+    def _buildQuery(self, recordTypes, matchType, queryString):
+        if not hasattr(self, "_odAttributes"):
+            self._odAttributes = [a.value for a in ODAttribute.iterconstants()]
+
+        return ODQuery.queryWithNode_forRecordTypes_attribute_matchType_queryValues_returnAttributes_maximumResults_error_(
+            self.node,                       # node
+            (t.value for t in recordTypes),  # record types
+            None,                            # attribute
+            matchType,                       # matchType
+            queryString,                     # queryString
+            self._odAttributes,              # return attributes
+            0,                               # max results
+            None                             # error
+        )
+
+
     def _recordsFromQuery(self, query):
         """
         Executes a query and generates directory records from it.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20140415/c0361a40/attachment-0001.html>


More information about the calendarserver-changes mailing list