equal
deleted
inserted
replaced
81 Returns: |
81 Returns: |
82 * None if a field is false. |
82 * None if a field is false. |
83 * Entity for supplied fields |
83 * Entity for supplied fields |
84 |
84 |
85 Raises: |
85 Raises: |
86 out_of_band.ErrorResponse if link name is not false, but no Sponsor entity |
86 out_of_band.ErrorResponse if link name is not false, but no entity |
87 with the supplied link name exists in the Datastore |
87 with the supplied link name exists in the Datastore |
88 """ |
88 """ |
89 |
89 |
90 if not all(kwargs.values()): |
90 if not all(kwargs.values()): |
91 # exit without error, to let view know that link_name was not supplied |
91 # exit without error, to let view know that link_name was not supplied |
92 return None |
92 return None |
93 |
93 |
94 entity = self.getFromFields(**kwargs) |
94 entity = self.getFromFields(**kwargs) |
95 |
95 |
96 if entity: |
96 if entity: |
97 # a Sponsor exist for this link_name, so return that Sponsor entity |
97 # an entity exist for this link_name, so return that entity |
98 return entity |
98 return entity |
99 |
99 |
100 fields = [] |
100 fields = [] |
101 |
101 |
102 for key, value in kwargs.iteritems(): |
102 for key, value in kwargs.iteritems(): |
185 if not entity: |
185 if not entity: |
186 # entity did not exist, so create one in a transaction |
186 # entity did not exist, so create one in a transaction |
187 entity = self._model.get_or_insert(key_name, **properties) |
187 entity = self._model.get_or_insert(key_name, **properties) |
188 |
188 |
189 # there is no way to be sure if get_or_insert() returned a new entity or |
189 # there is no way to be sure if get_or_insert() returned a new entity or |
190 # got an existing one due to a race, so update with sponsor_properties anyway, |
190 # got an existing one due to a race, so update with properties anyway, |
191 # in a transaction |
191 # in a transaction |
192 return self.updateModelProperties(entity, **properties) |
192 return self.updateModelProperties(entity, **properties) |
193 |
193 |
194 def updateOrCreateFromFields(self, properties, **kwargs): |
194 def updateOrCreateFromFields(self, properties, **kwargs): |
195 """Like updateOrCreateFromKeyName, but resolves **kwargs to a key_name first |
195 """Like updateOrCreateFromKeyName, but resolves **kwargs to a key_name first |