[CalendarServer-changes] [10311] CalendarServer/branches/users/gaya/sharedgroups/txdav
source_changes at macosforge.org
source_changes at macosforge.org
Thu Jan 17 16:35:17 PST 2013
Revision: 10311
http://trac.calendarserver.org//changeset/10311
Author: gaya at apple.com
Date: 2013-01-17 16:35:16 -0800 (Thu, 17 Jan 2013)
Log Message:
-----------
Remove AddressBookSharingMixIn(), clean up SharingMixin
Modified Paths:
--------------
CalendarServer/branches/users/gaya/sharedgroups/txdav/carddav/datastore/sql.py
CalendarServer/branches/users/gaya/sharedgroups/txdav/common/datastore/sql.py
Modified: CalendarServer/branches/users/gaya/sharedgroups/txdav/carddav/datastore/sql.py
===================================================================
--- CalendarServer/branches/users/gaya/sharedgroups/txdav/carddav/datastore/sql.py 2013-01-18 00:00:14 UTC (rev 10310)
+++ CalendarServer/branches/users/gaya/sharedgroups/txdav/carddav/datastore/sql.py 2013-01-18 00:35:16 UTC (rev 10311)
@@ -154,50 +154,8 @@
AddressBookHome._register(EADDRESSBOOKTYPE)
-class AddressBookSharingMixIn(SharingMixIn):
-
- @classproperty
- def _insertABObject(cls): #@NoSelf
- """
- DAL statement to create an addressbook object with all default values.
- """
- abo = schema.ADDRESSBOOK_OBJECT
- return Insert(
- {abo.RESOURCE_ID: schema.RESOURCE_ID_SEQ,
- abo.ADDRESSBOOK_RESOURCE_ID: Parameter("addressbookResourceID"),
- abo.RESOURCE_NAME: Parameter("name"),
- abo.VCARD_TEXT: Parameter("text"),
- abo.VCARD_UID: Parameter("uid"),
- abo.KIND: Parameter("kind"),
- abo.MD5: Parameter("md5"),
- },
- Return=(abo.RESOURCE_ID,
- abo.CREATED,
- abo.MODIFIED))
-
-
- @classmethod
- def _abObjectColumnsWithResourceIDsQuery(cls, columns, resourceIDs): #@NoSelf
- """
- DAL statement to retrieve addressbook object rows with given columns.
- """
- obj = cls._objectSchema
- return Select(columns, From=obj,
- Where=obj.RESOURCE_ID.In(Parameter("resourceIDs", len(resourceIDs))),)
-
-
- @classmethod
- def _abObjectColumnsWithAddressBookResourceID(cls, columns,): #@NoSelf
- """
- DAL statement to retrieve addressbook object rows with given columns.
- """
- obj = cls._objectSchema
- return Select(columns, From=obj,
- Where=obj.ADDRESSBOOK_RESOURCE_ID == Parameter("addressbookResourceID"),)
-
-
-class AddressBook(CommonHomeChild, AddressBookSharingMixIn):
+class AddressBook(CommonHomeChild, SharingMixIn):
"""
SQL-based implementation of L{IAddressBook}.
"""
@@ -331,6 +289,16 @@
returnValue(self._ownerAddressBook)
+ @classmethod
+ def _abObjectColumnsWithAddressBookResourceID(cls, columns,): #@NoSelf
+ """
+ DAL statement to retrieve addressbook object rows with given columns.
+ """
+ obj = cls._objectSchema
+ return Select(columns, From=obj,
+ Where=obj.ADDRESSBOOK_RESOURCE_ID == Parameter("addressbookResourceID"),)
+
+
@inlineCallbacks
def _groupForSharedAddressBookRow(self): #@NoSelf
@@ -634,7 +602,7 @@
-class AddressBookObject(CommonObjectResource, AddressBookSharingMixIn):
+class AddressBookObject(CommonObjectResource, SharingMixIn):
implements(IAddressBookObject)
@@ -766,36 +734,6 @@
Where=obj.RESOURCE_ID == Parameter("resourceID"),)
- '''
- @classmethod
- def _allWithParentAnd(cls, column, paramName):
- """
- DAL query for all columns where PARENT_RESOURCE_ID matches a parentID
- parameter and a given instance column matches a given parameter name.
- """
- return Select(
- cls._allColumns, From=cls._objectSchema,
- Where=(column == Parameter(paramName)).And(
- cls._objectSchema.PARENT_RESOURCE_ID == Parameter("parentID"))
- )
-
-
- @classproperty
- def _allWithParentAndName(cls): #@NoSelf
- return cls._allWithParentAnd(cls._objectSchema.RESOURCE_NAME, "name")
-
-
- @classproperty
- def _allWithParentAndUID(cls): #@NoSelf
- return cls._allWithParentAnd(cls._objectSchema.UID, "uid")
-
-
- @classproperty
- def _allWithParentAndID(cls): #@NoSelf
- return cls._allWithParentAnd(cls._objectSchema.RESOURCE_ID, "resourceID")
-
- '''
-
@inlineCallbacks
def initFromStore(self):
"""
@@ -931,6 +869,16 @@
@classmethod
+ def _abObjectColumnsWithResourceIDsQuery(cls, columns, resourceIDs): #@NoSelf
+ """
+ DAL statement to retrieve addressbook object rows with given columns.
+ """
+ obj = cls._objectSchema
+ return Select(columns, From=obj,
+ Where=obj.RESOURCE_ID.In(Parameter("resourceIDs", len(resourceIDs))),)
+
+
+ @classmethod
@inlineCallbacks
def _allColumnsWithParent(cls, parent): #@NoSelf
@@ -1037,6 +985,26 @@
aboForeignMembers.MEMBER_ADDRESS.In(Parameter("memberAddrs", len(memberAddrs)))))
+ @classproperty
+ def _insertABObject(cls): #@NoSelf
+ """
+ DAL statement to create an addressbook object with all default values.
+ """
+ abo = schema.ADDRESSBOOK_OBJECT
+ return Insert(
+ {abo.RESOURCE_ID: schema.RESOURCE_ID_SEQ,
+ abo.ADDRESSBOOK_RESOURCE_ID: Parameter("addressbookResourceID"),
+ abo.RESOURCE_NAME: Parameter("name"),
+ abo.VCARD_TEXT: Parameter("text"),
+ abo.VCARD_UID: Parameter("uid"),
+ abo.KIND: Parameter("kind"),
+ abo.MD5: Parameter("md5"),
+ },
+ Return=(abo.RESOURCE_ID,
+ abo.CREATED,
+ abo.MODIFIED))
+
+
@inlineCallbacks
def updateDatabase(self, component, expand_until=None, reCreate=False,
inserting=False):
Modified: CalendarServer/branches/users/gaya/sharedgroups/txdav/common/datastore/sql.py
===================================================================
--- CalendarServer/branches/users/gaya/sharedgroups/txdav/common/datastore/sql.py 2013-01-18 00:00:14 UTC (rev 10310)
+++ CalendarServer/branches/users/gaya/sharedgroups/txdav/common/datastore/sql.py 2013-01-18 00:35:16 UTC (rev 10311)
@@ -2123,6 +2123,33 @@
"""
Common class for CommonHomeChild and AddressBookObject
"""
+
+ @classproperty
+ def _bindInsertQuery(cls, **kw): #@NoSelf
+ """
+ DAL statement to create a bind entry that connects a collection to its
+ home.
+ """
+ bind = cls._bindSchema
+ return Insert({
+ bind.HOME_RESOURCE_ID: Parameter("homeID"),
+ bind.RESOURCE_ID: Parameter("resourceID"),
+ bind.RESOURCE_NAME: Parameter("name"),
+ bind.BIND_MODE: Parameter("mode"),
+ bind.BIND_STATUS: Parameter("bindStatus"),
+ bind.MESSAGE: Parameter("message"),
+ })
+
+
+ @classproperty
+ def _updateBindQuery(cls): #@NoSelf
+ bind = cls._bindSchema
+ return cls._updateBindColumnsQuery(
+ {bind.BIND_MODE: Parameter("mode"),
+ bind.BIND_STATUS: Parameter("status"),
+ bind.MESSAGE: Parameter("message")})
+
+
@inlineCallbacks
def shareWith(self, shareeHome, mode, status=None, message=None):
"""
@@ -2175,6 +2202,15 @@
returnValue(sharedName)
+ @classmethod
+ def _updateBindColumnsQuery(cls, columnMap): #@NoSelf
+ bind = cls._bindSchema
+ return Update(columnMap,
+ Where=(bind.RESOURCE_ID == Parameter("resourceID"))
+ .And(bind.HOME_RESOURCE_ID == Parameter("homeID")),
+ Return=bind.RESOURCE_NAME)
+
+
@inlineCallbacks
def updateShare(self, shareeView, mode=None, status=None, message=None, name=None):
"""
@@ -2296,6 +2332,30 @@
returnValue(resourceName)
+ @classmethod
+ def _bindFor(cls, condition): #@NoSelf
+ bind = cls._bindSchema
+ return Select(
+ [bind.BIND_MODE,
+ bind.HOME_RESOURCE_ID,
+ bind.RESOURCE_ID,
+ bind.RESOURCE_NAME,
+ bind.BIND_STATUS,
+ bind.MESSAGE],
+ From=bind,
+ Where=condition
+ )
+
+
+ @classproperty
+ def _sharedBindForResourceID(cls): #@NoSelf
+ bind = cls._bindSchema
+ return cls._bindFor((bind.RESOURCE_ID == Parameter("resourceID"))
+ .And(bind.BIND_STATUS == _BIND_STATUS_ACCEPTED)
+ .And(bind.BIND_MODE != _BIND_MODE_OWN)
+ )
+
+
@inlineCallbacks
def asShared(self):
"""
@@ -2333,6 +2393,14 @@
returnValue(result)
+ @classproperty
+ def _invitedBindForResourceID(cls): #@NoSelf
+ bind = cls._bindSchema
+ return cls._bindFor((bind.RESOURCE_ID == Parameter("resourceID"))
+ .And(bind.BIND_STATUS != _BIND_STATUS_ACCEPTED)
+ )
+
+
@inlineCallbacks
def asInvited(self):
"""
@@ -2369,117 +2437,6 @@
returnValue(result)
- @classproperty
- def _bindInsertQuery(cls, **kw): #@NoSelf
- """
- DAL statement to create a bind entry that connects a collection to its
- home.
- """
- bind = cls._bindSchema
- return Insert({
- bind.HOME_RESOURCE_ID: Parameter("homeID"),
- bind.RESOURCE_ID: Parameter("resourceID"),
- bind.RESOURCE_NAME: Parameter("name"),
- bind.BIND_MODE: Parameter("mode"),
- bind.BIND_STATUS: Parameter("bindStatus"),
- bind.MESSAGE: Parameter("message"),
- })
-
- @classmethod
- def _updateBindColumnsQuery(cls, columnMap): #@NoSelf
- bind = cls._bindSchema
- return Update(columnMap,
- Where=(bind.RESOURCE_ID == Parameter("resourceID"))
- .And(bind.HOME_RESOURCE_ID == Parameter("homeID")),
- Return=bind.RESOURCE_NAME)
-
-
- @classproperty
- def _updateBindQuery(cls): #@NoSelf
- bind = cls._bindSchema
- return cls._updateBindColumnsQuery(
- {bind.BIND_MODE: Parameter("mode"),
- bind.BIND_STATUS: Parameter("status"),
- bind.MESSAGE: Parameter("message")})
-
-
-
- @classmethod
- def _bindFor(cls, condition): #@NoSelf
- bind = cls._bindSchema
- return Select(
- [bind.BIND_MODE,
- bind.HOME_RESOURCE_ID,
- bind.RESOURCE_ID,
- bind.RESOURCE_NAME,
- bind.BIND_STATUS,
- bind.MESSAGE],
- From=bind,
- Where=condition
- )
-
-
- @classproperty
- def _invitedBindForResourceID(cls): #@NoSelf
- bind = cls._bindSchema
- return cls._bindFor((bind.RESOURCE_ID == Parameter("resourceID"))
- .And(bind.BIND_STATUS != _BIND_STATUS_ACCEPTED)
- )
-
-
- @classproperty
- def _sharedBindForResourceID(cls): #@NoSelf
- bind = cls._bindSchema
- return cls._bindFor((bind.RESOURCE_ID == Parameter("resourceID"))
- .And(bind.BIND_STATUS == _BIND_STATUS_ACCEPTED)
- .And(bind.BIND_MODE != _BIND_MODE_OWN)
- )
-
-
- @classmethod
- def _sharedBindForResourceIDRows(cls, txn, resourceID, homeID): #@NoSelf
- return cls._sharedBindForResourceID.on(
- txn, resourceID=resourceID, homeID=homeID
- )
-
-
- @classproperty
- def _invitedBindForHomeID(cls): #@NoSelf
- bind = cls._bindSchema
- return cls._bindFor((bind.HOME_RESOURCE_ID == Parameter("homeID"))
- .And(bind.BIND_STATUS != _BIND_STATUS_ACCEPTED))
-
-
- @classproperty
- def _invitedBindForNameAndHomeID(cls): #@NoSelf
- bind = cls._bindSchema
- return cls._bindFor((bind.RESOURCE_NAME == Parameter("name"))
- .And(bind.HOME_RESOURCE_ID == Parameter("homeID"))
- .And(bind.BIND_STATUS != _BIND_STATUS_ACCEPTED)
- )
-
-
- @classproperty
- def _childForNameAndHomeID(cls): #@NoSelf
- bind = cls._bindSchema
- return cls._bindFor((bind.RESOURCE_NAME == Parameter("name"))
- .And(bind.HOME_RESOURCE_ID == Parameter("homeID"))
- .And(bind.BIND_STATUS == _BIND_STATUS_ACCEPTED)
- )
-
-
- @classproperty
- def _bindForResourceIDAndHomeID(cls): #@NoSelf
- """
- DAL query that looks up home child names / bind modes by home child
- resource ID and home resource ID.
- """
- bind = cls._bindSchema
- return cls._bindFor((bind.RESOURCE_ID == Parameter("resourceID"))
- .And(bind.HOME_RESOURCE_ID == Parameter("homeID"))
- )
-
-
class CommonHomeChild(LoggingMixIn, FancyEqMixin, _SharedSyncLogic, HomeChildBase, SharingMixIn):
"""
Common ancestor class of AddressBooks and Calendars.
@@ -2586,11 +2543,16 @@
rows = yield cls._childNamesForHomeID.on(
home._txn, homeID=home._resourceID)
names = [row[0] for row in rows]
-
returnValue(names)
+ @classproperty
+ def _invitedBindForHomeID(cls): #@NoSelf
+ bind = cls._bindSchema
+ return cls._bindFor((bind.HOME_RESOURCE_ID == Parameter("homeID"))
+ .And(bind.BIND_STATUS != _BIND_STATUS_ACCEPTED))
+
@classmethod
@inlineCallbacks
def listInvitedObjects(cls, home):
@@ -2765,6 +2727,15 @@
returnValue(results)
+ @classproperty
+ def _invitedBindForNameAndHomeID(cls): #@NoSelf
+ bind = cls._bindSchema
+ return cls._bindFor((bind.RESOURCE_NAME == Parameter("name"))
+ .And(bind.HOME_RESOURCE_ID == Parameter("homeID"))
+ .And(bind.BIND_STATUS != _BIND_STATUS_ACCEPTED)
+ )
+
+
@classmethod
@inlineCallbacks
def ownerHomeID(cls, txn, resourceID):
@@ -2819,6 +2790,15 @@
returnValue(child)
+ @classproperty
+ def _childForNameAndHomeID(cls): #@NoSelf
+ bind = cls._bindSchema
+ return cls._bindFor((bind.RESOURCE_NAME == Parameter("name"))
+ .And(bind.HOME_RESOURCE_ID == Parameter("homeID"))
+ .And(bind.BIND_STATUS == _BIND_STATUS_ACCEPTED)
+ )
+
+
@classmethod
@inlineCallbacks
def objectWithName(cls, home, name):
@@ -2879,6 +2859,18 @@
returnValue(child)
+ @classproperty
+ def _bindForResourceIDAndHomeID(cls): #@NoSelf
+ """
+ DAL query that looks up home child names / bind modes by home child
+ resource ID and home resource ID.
+ """
+ bind = cls._bindSchema
+ return cls._bindFor((bind.RESOURCE_ID == Parameter("resourceID"))
+ .And(bind.HOME_RESOURCE_ID == Parameter("homeID"))
+ )
+
+
@classmethod
@inlineCallbacks
def objectWithID(cls, home, resourceID):
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20130117/80b5dcde/attachment-0001.html>
More information about the calendarserver-changes
mailing list