Exemplo n.º 1
0
 def put_list(self, request, **kwargs):
     """
     Put list
     """
     try:
         deserialized = self.deserialize(request, request.raw_post_data, format=request.META.get('CONTENT_TYPE', 'application/json'))
         deserialized = self.alter_deserialized_list_data(request, deserialized)
     
         # pseudo-hydrate a Group bundle to populate the GroupUserLink objects
         group_resource = GroupResource()
         bundle = Bundle(obj=kwargs['group'], data=deserialized, request=request)
         bundle = group_resource.hydrate_m2m_users(bundle)
         group_resource.save_m2m_users(bundle)
         data = complete_dehydrate(bundle.data)
         data["code"] = 0
         return HttpResponse(self._meta.serializer.to_json(data),
             mimetype='application/json')
     except Exception, e:
         print 'put_list error'
         print traceback.print_exc()
         return error_code(1)
Exemplo n.º 2
0
def verify_new_mobile_user(request):
    """
    Request contains:
    phoneNumber - the phone number of the user
    pinNumber - the validating pin number
    deviceInfo
    
    returns:
    error code
    user object
    groupsForUser [group object]
    """
    try:
        obj = simplejson.loads(request.body)
    except ValueError:
        obj = simplejson.loads(request.POST["json"])
    phone_number = normalize_phone_number(obj["phoneNumber"])
    pin = obj["pinNumber"]
    device_id = obj["deviceInfo"]["deviceID"]
    device_type = obj["deviceInfo"]["deviceType"]
    data = {}
    try:
        print 'verifying pin'
        # verify pin number
        try:
            user_profile = UserProfile.objects.get(pin=pin,
                phone_number=phone_number)
        except:
            data['code'] = 11
            raise Exception("Invalid pin number")
        print 'creating new verified device id'
        # create new VerifiedDeviceID model instance
        verified_device_id, created = VerifiedDeviceID.objects.get_or_create(
            device_id=device_id, device_type=device_type,
            user=user_profile.user)
        
        print 'login user'
        # log-in user
        user = authenticate(phone_number=phone_number, device_id=device_id,
            device_type=device_type)
        login(request, user)
        if verified_device_id.device_type == "I":
            user_profile.is_iOS_user = True
            user_profile.save()
        
        # setting up JSON object to return
        data['code'] =  0
        print 'group_resources~~~~~~~~~~~~~~~~~~'
        group_resources = []
        group_user_links = GroupUserLink.objects.filter(user=user)
        for link in group_user_links:
            gr = GroupResource()
            group = link.group
            gr_bundle = gr.build_bundle(obj=group, request=request)
            gr_bundle = gr.full_dehydrate(gr_bundle)
            group_resources.append(complete_dehydrate(gr_bundle.data))
        ur = UserResource()
        ur_bundle = ur.build_bundle(obj=user, request=request)
        data['user'] = complete_dehydrate(ur.full_dehydrate(ur_bundle).data)
        data['groupsForUser'] = group_resources
        data = complete_dehydrate(data)
        data['code'] = 0 # success
        serializer = CamelCaseJSONSerializer()
        return HttpResponse(serializer.to_json(data),
            mimetype='application/json')
    except Exception, e:
        traceback.print_exc()
        print 'Error with verifying a new app user: %s' % e
        if data.get('code', 0) == 0:
            data['code'] = 1