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)
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