예제 #1
0
    def on_get(self, request, response, email):
        """Retrieve a User."""
        schema = UserSchema()
        user = Session.query(User).get(email)
        if user is None:
            raise HTTPNotFound

        response.document = schema.dump(user).data
예제 #2
0
    def on_delete(self, request, response, id):
        """Delete a Group."""
        group = Session.query(Group).get(id)
        if group is None:
            raise HTTPNotFound

        Session.delete(group)
        response.status = HTTP_NO_CONTENT
예제 #3
0
    def on_get(self, request, response, id):
        """Retrieve a Group."""
        schema = GroupSchema()
        group = Session.query(Group).get(id)
        if group is None:
            raise HTTPNotFound

        response.document = schema.dump(group).data
예제 #4
0
    def on_delete(self, request, response, email):
        """Delete a User."""
        user = Session.query(User).get(email)
        if user is None:
            raise HTTPNotFound

        Session.delete(user)
        response.status = HTTP_NO_CONTENT
예제 #5
0
 def validate_users(self, data, many):
     """Validate that the submitted users all exist."""
     users = data.get('users', [])
     users = {user['email'] for user in users}
     query = Session.query(User).filter(User.email.in_(users))
     do_not_exist = users - {user.email for user in query.all()}
     if do_not_exist:
         raise ValidationError('Users: {} do not exist'.format(
             do_not_exist.__repr__()))
예제 #6
0
 def get_one_or_create(cls, create_kwargs=None, **kwargs):
     """Race free django-style get or create."""
     query = Session.query(cls).filter_by(**kwargs)
     try:
         return query.one()
     except NoResultFound:
         Session.begin_nested()
         kwargs.update(create_kwargs or {})
         new = cls(**kwargs)
         Session.add(new)
         try:
             Session.commit()
             return new
         except IntegrityError:
             Session.rollback()
             return query.one()