Statistics
| Branch: | Tag: | Revision:

root / snf-astakos-app / astakos / im / endpoints / aquarium / consumer.py @ fc1e2f02

History | View | Annotate | Download (2.1 kB)

1 59f598f1 Sofia Papagiannaki
# Copyright 2011-2012 GRNET S.A. All rights reserved.
2 59f598f1 Sofia Papagiannaki
#
3 59f598f1 Sofia Papagiannaki
# Redistribution and use in source and binary forms, with or
4 59f598f1 Sofia Papagiannaki
# without modification, are permitted provided that the following
5 59f598f1 Sofia Papagiannaki
# conditions are met:
6 59f598f1 Sofia Papagiannaki
#
7 59f598f1 Sofia Papagiannaki
#   1. Redistributions of source code must retain the above
8 59f598f1 Sofia Papagiannaki
#      copyright notice, this list of conditions and the following
9 59f598f1 Sofia Papagiannaki
#      disclaimer.
10 59f598f1 Sofia Papagiannaki
#
11 59f598f1 Sofia Papagiannaki
#   2. Redistributions in binary form must reproduce the above
12 59f598f1 Sofia Papagiannaki
#      copyright notice, this list of conditions and the following
13 59f598f1 Sofia Papagiannaki
#      disclaimer in the documentation and/or other materials
14 59f598f1 Sofia Papagiannaki
#      provided with the distribution.
15 59f598f1 Sofia Papagiannaki
#
16 59f598f1 Sofia Papagiannaki
# THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
17 59f598f1 Sofia Papagiannaki
# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 59f598f1 Sofia Papagiannaki
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19 59f598f1 Sofia Papagiannaki
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
20 59f598f1 Sofia Papagiannaki
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21 59f598f1 Sofia Papagiannaki
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22 59f598f1 Sofia Papagiannaki
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
23 59f598f1 Sofia Papagiannaki
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
24 59f598f1 Sofia Papagiannaki
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25 59f598f1 Sofia Papagiannaki
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
26 59f598f1 Sofia Papagiannaki
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27 59f598f1 Sofia Papagiannaki
# POSSIBILITY OF SUCH DAMAGE.
28 59f598f1 Sofia Papagiannaki
#
29 59f598f1 Sofia Papagiannaki
# The views and conclusions contained in the software and
30 59f598f1 Sofia Papagiannaki
# documentation are those of the authors and should not be
31 59f598f1 Sofia Papagiannaki
# interpreted as representing official policies, either expressed
32 59f598f1 Sofia Papagiannaki
# or implied, of GRNET S.A.
33 59f598f1 Sofia Papagiannaki
34 59f598f1 Sofia Papagiannaki
import logging
35 59f598f1 Sofia Papagiannaki
36 e21a4ea5 Sofia Papagiannaki
logging.basicConfig(format='%(asctime)s [%(levelname)s] %(name)s %(message)s',
37 e21a4ea5 Sofia Papagiannaki
        datefmt='%Y-%m-%d %H:%M:%S'
38 e21a4ea5 Sofia Papagiannaki
)
39 e21a4ea5 Sofia Papagiannaki
logger = logging.getLogger('endpoint.aquarium')
40 59f598f1 Sofia Papagiannaki
41 e21a4ea5 Sofia Papagiannaki
from astakos.im.models import AstakosUser
42 59f598f1 Sofia Papagiannaki
43 59f598f1 Sofia Papagiannaki
def on_creditevent(msg):
44 e21a4ea5 Sofia Papagiannaki
    """
45 e21a4ea5 Sofia Papagiannaki
    Queue handler for updating AstakosUser has_credits
46 e21a4ea5 Sofia Papagiannaki
    """
47 59f598f1 Sofia Papagiannaki
    try:
48 59f598f1 Sofia Papagiannaki
        email = msg.get('userid')
49 e21a4ea5 Sofia Papagiannaki
        has_credits = msg.get('status') == 'on' or False
50 e21a4ea5 Sofia Papagiannaki
        user = AstakosUser.objects.get(email=email, is_active=True)
51 e21a4ea5 Sofia Papagiannaki
        user.has_credits = has_credits
52 e21a4ea5 Sofia Papagiannaki
        user.save()
53 e21a4ea5 Sofia Papagiannaki
    except BaseException, e:
54 59f598f1 Sofia Papagiannaki
        logger.exception(e)