Example #1
0
 def get_or_404(self, *args, **kwargs):
     try:
         return self.get(*args, **kwargs)
     except (MultipleObjectsReturned, DoesNotExist, ValidationError), e:
         # current_app.logger.exception(e)
         if current_app.debug:
             raise FriendlyException(404, e.message)
         raise FriendlyException(404, 'Resource is not exists.')
Example #2
0
    def paginate(self,
                 where=None,
                 limit=None,
                 page=None,
                 sort=None,
                 only=(),
                 exclude=()):

        form_data = request.values or request.json or {}
        where = where if where else json.loads(form_data.get('where', '{}'))
        limit = int(limit if limit else form_data.get('limit', 20))
        page = int(page if page else form_data.get('page', 1))
        sort = sort if sort else form_data.get('sort', '-modified')

        if limit <= 0 or limit > 200 or page <= 0:
            raise FriendlyException.from_error_code(
                error_code.INVALID_PAGINATE)

        querySet = self.filter(**where)
        if len(only):
            querySet = querySet.only(*only)

        if len(exclude):
            querySet = querySet.exclude(*exclude)

        if sort:
            querySet = querySet.order_by(sort)

        paginate = PaginationMixin(querySet, page, limit)
        return paginate.to_dict()
Example #3
0
def str2bool(sv):

    lower_value = sv.lower()
    if lower_value in ("yes", "true", "t", "1"):
        return True
    elif sv.lower() in ("no", "false", "f", "0"):
        return False

    raise FriendlyException(104, 'value %s cant be convert to bool' % lower_value)
Example #4
0
def signup():
    ''' signup user. '''
    email = g.formdata.get('email')
    name = g.formdata.get('name')
    password = g.formdata.get('password')

    # validate input
    if not email or not name or not password:
        raise FriendlyException.fec(error_code.ENP_REQUIRED)

    # generate a verify code.
    verify_code = ''.join(random.sample(string.letters, 6))
    user = User(email=email, name=name, password=password,
                verify_code=verify_code)
    try:
        user.save()
    except NotUniqueError:
        raise FriendlyException.fec(error_code.EMAIL_DUPLICATE, email)
    # should we send a email here?
    return user
Example #5
0
def signup():
    ''' signup user. '''
    email = g.formdata.get('email')
    name = g.formdata.get('name')
    password = g.formdata.get('password')

    # validate input
    if not email or not name or not password:
        raise FriendlyException.fec(error_code.ENP_REQUIRED)

    # generate a verify code.
    verify_code = ''.join(random.sample(string.letters, 6))
    user = User(email=email,
                name=name,
                password=password,
                verify_code=verify_code)
    try:
        user.save()
    except NotUniqueError:
        raise FriendlyException.fec(error_code.EMAIL_DUPLICATE, email)
    # should we send a email here?
    return user
Example #6
0
def do_login():

    next_url = g.formdata.get('next')
    email = g.formdata.get('email')
    password = g.formdata.get('password')
    remember = (g.formdata.get('remember', 'no') == 'yes')

    print '=============' + request.values.get('next')

    user = User.objects(email=email, password=password).first()
    if user is not None:
        if login_user(SessionUserMixin(user), remember=remember):
            user.last_login_on = datetime.datetime.now()
            user.save()
            return redirect(next_url or url_for('index'))

    raise FriendlyException.fec(error_code.LOGIN_FAILED)
Example #7
0
def do_login():
    
    next_url = g.formdata.get('next')
    email = g.formdata.get('email')
    password = g.formdata.get('password')
    remember = (g.formdata.get('remember', 'no') == 'yes')
    
    
    
    print '=============' + request.values.get('next')
    
    user = User.objects(email=email, password=password).first()
    if user is not None:
        if login_user(SessionUserMixin(user), remember=remember):
            user.last_login_on = datetime.datetime.now()
            user.save()
            return redirect(next_url or url_for('index'))

    raise FriendlyException.fec(error_code.LOGIN_FAILED)
Example #8
0
    def paginate(self, where=None, limit=None, page=None, sort=None, only=(), exclude=()):

        form_data = request.values or request.json or {}
        where = where if where else json.loads(form_data.get('where', '{}'))
        limit = int(limit if limit else form_data.get('limit', 20))
        page = int(page if page else form_data.get('page', 1))
        sort = sort if sort else form_data.get('sort', '-modified')

        if limit <= 0 or limit > 200 or page <= 0:
            raise FriendlyException.from_error_code(error_code.INVALID_PAGINATE)

        querySet = self.filter(**where)
        if len(only):
            querySet = querySet.only(*only)

        if len(exclude):
            querySet = querySet.exclude(*exclude)

        if sort:
            querySet = querySet.order_by(sort)

        paginate = PaginationMixin(querySet, page, limit)
        return paginate.to_dict()
Example #9
0
from vclassifieds.common.exceptions import FriendlyException
from vclassifieds.common import error_code
from functools import wraps


def reraise(to_raise):
    def decorator(f):
        @wraps(f)
        def inner(*args, **kwargs):
            try:
                return f(*args, **kwargs)
            except:
                raise to_raise

        return inner

    return decorator


@reraise(FriendlyException.from_error_code(error_code.INVALID_JSON))
def is_object_id(object_id_value):
    from bson.objectid import ObjectId
    ObjectId(unicode(object_id_value))
    return True


@reraise(FriendlyException.from_error_code(error_code.INVALID_JSON))
def is_json(json_value):
    import json
    return json.loads(json_value)
Example #10
0
 def exception_handler(error, status=400):
     app.logger.exception(error)
     ex = FriendlyException(400, str(error))
     return handler_ex(ex, status)
Example #11
0
 def mongo_op_ex_handler(error, status=400):
     ex = FriendlyException(400, str(error))
     return handler_ex(ex, status)
Example #12
0
 def form_validata_ex_handler(error, status=400):
     ex = FriendlyException(400, error.to_dict())
     return handler_ex(ex, status)
Example #13
0
 def page_not_found(error):
     ex = FriendlyException.fec(error_code.RESOURCE_NOT_EXIST)
     return handler_ex(ex, 404)
Example #14
0
# Created on 2013-2-24
#
from vclassifieds.common.exceptions import FriendlyException
from vclassifieds.common import error_code
from functools import wraps

def reraise(to_raise):

    def decorator(f):
        @wraps(f)
        def inner(*args, **kwargs):
            try:
                return f(*args, **kwargs)
            except:
                raise to_raise
        return inner

    return decorator;

@reraise(FriendlyException.from_error_code(error_code.INVALID_JSON))
def is_object_id(object_id_value):
    from bson.objectid import ObjectId
    ObjectId(unicode(object_id_value))
    return True

@reraise(FriendlyException.from_error_code(error_code.INVALID_JSON))
def is_json(json_value):
    import json
    return json.loads(json_value)

Example #15
0
 def page_not_found(error):
     ex = FriendlyException.fec(error_code.RESOURCE_NOT_EXIST)
     return handler_ex(ex, 404)