def post(self,*args,**kwargs): #RESTRICTED try: logging.debug(kwargs) email = kwargs.get('email',None) alias = kwargs.get('alias',None) pw = kwargs.get('pw',None) '''Check availability of username+pass, create and login if not taken''' #check availabilities r_email = levr.Customer.gql('WHERE email = :1',email).get() r_alias = levr.Customer.gql('WHERE alias = :1',alias).get() #if taken, send error if r_email: api_utils.send_error(self,'That email is already registered.') return if r_alias: api_utils.send_error(self,'That alias is already registered.') return #still here? create a customer, then. user = levr.create_new_user( email=email, alias=alias, pw=enc.encrypt_password(pw)) #put and reply #create or refresh the alias user = levr.build_display_name(user) try: levr.text_notify(user.display_name+' from Levr!') except: levr.log_error() #put and reply user.put() response = {'user':api_utils.package_user(user,True,send_token=True)} api_utils.send_response(self,response,user) except: levr.log_error() api_utils.send_error(self,'Server Error')
def __init__(self, user=None, *args, **kwargs): ''' Foursquare ''' logging.debug('\n\n\n \t\t\t INIT FOURSQUARE \n\n\n') #set the foursquare api version self.version = '20121007' #the foursquare api version if 'debug' in args: foursquare_token = kwargs.get('foursquare_token') self.foursquare_token = foursquare_token if not user: #user was not passed, check to make sure that the user does not already exist # if the user exists, pass it to SocialClass.__init__ # otherwise, create a new user and pass it that foursquare_token = kwargs.get('foursquare_token') #make sure foursquare token was passed assert foursquare_token, 'Did not pass a user, so must pass foursquare_token as kwarg' #assign the foursquare_token so that self.fetch will work self.foursquare_token = foursquare_token #fetch the user info response = self.fetch('') logging.debug(levr.log_dict(response)) #get the user id foursquare_id = int(response['response']['user']['id']) #search for the user by that id user = levr.Customer.all().filter('foursquare_id', foursquare_id).get() # logging.debug('\n\n\n\n \t\t\t\t USER \n\n\n\n') logging.debug(user) logging.debug(levr.log_model_props(user)) if not user: logging.debug('user doesnt exist') #user does not exist in database - create a new one! user = levr.create_new_user() else: logging.debug('user exists') # else: user was found and we will init with that user #init all dat social stuff! SocialClass.__init__(self, user, *args, **kwargs)
def post(self, *args, **kwargs): #RESTRICTED try: logging.debug(kwargs) email = kwargs.get('email', None) alias = kwargs.get('alias', None) pw = kwargs.get('pw', None) '''Check availability of username+pass, create and login if not taken''' #check availabilities r_email = levr.Customer.gql('WHERE email = :1', email).get() r_alias = levr.Customer.gql('WHERE alias = :1', alias).get() #if taken, send error if r_email: api_utils.send_error(self, 'That email is already registered.') return if r_alias: api_utils.send_error(self, 'That alias is already registered.') return #still here? create a customer, then. user = levr.create_new_user(email=email, alias=alias, pw=enc.encrypt_password(pw)) #put and reply #create or refresh the alias user = levr.build_display_name(user) try: levr.text_notify(user.display_name + ' from Levr!') except: levr.log_error() #put and reply user.put() response = { 'user': api_utils.package_user(user, True, send_token=True) } api_utils.send_response(self, response, user) except: levr.log_error() api_utils.send_error(self, 'Server Error')
def __init__(self, user=None, *args, **kwargs): ''' Foursquare ''' logging.debug('\n\n\n \t\t\t INIT FOURSQUARE \n\n\n') #set the foursquare api version self.version = '20121007' #the foursquare api version if 'debug' in args: foursquare_token = kwargs.get('foursquare_token') self.foursquare_token = foursquare_token if not user: #user was not passed, check to make sure that the user does not already exist # if the user exists, pass it to SocialClass.__init__ # otherwise, create a new user and pass it that foursquare_token = kwargs.get('foursquare_token') #make sure foursquare token was passed assert foursquare_token, 'Did not pass a user, so must pass foursquare_token as kwarg' #assign the foursquare_token so that self.fetch will work self.foursquare_token = foursquare_token #fetch the user info response = self.fetch('') logging.debug(levr.log_dict(response)) #get the user id foursquare_id = int(response['response']['user']['id']) #search for the user by that id user = levr.Customer.all().filter('foursquare_id',foursquare_id).get() # logging.debug('\n\n\n\n \t\t\t\t USER \n\n\n\n') logging.debug(user) logging.debug(levr.log_model_props(user)) if not user: logging.debug('user doesnt exist') #user does not exist in database - create a new one! user = levr.create_new_user() else: logging.debug('user exists') # else: user was found and we will init with that user #init all dat social stuff! SocialClass.__init__(self, user, *args, **kwargs)
def __init__(self, user=None, *args, **kwargs): ''' Twitter ''' logging.debug('\n\n\n \t\t\t INIT Twitter \n\n\n') self.set_noise_level(*args) # if user is not passed, then check if a user exists with the identity specified. if they do not exist, then create a new one if not user: #user was not passed, check to make sure that the user does not already exist # if the user exists, pass it to SocialClass.__init__ # otherwise, create a new user and pass it that twitter_id = int(kwargs.get('twitter_id')) # twitter_token = kwargs.get('twitter_token') # twitter_token_secret = kwargs.get('twitter_token_secret') #make sure necessary credentials were passed assert twitter_id, 'Did not pass a user, so must pass twitter_id as kwarg' # assert twitter_token, 'Did not pass a user, so must pass twitter_token as kwarg' # assert twitter_token_secret, 'Did not pass a user, so must pass twitter_token_secret as kwarg' #search for the user by that id user = levr.Customer.all().filter('twitter_id',twitter_id).get() # #fetch the user info # response = self.fetch('user') # logging.debug(levr.log_dict(response)) # logging.debug(levr.log_model_props(user)) if not user: logging.debug('user doesnt exist') #user does not exist in database - create a new one! user = levr.create_new_user() else: logging.debug('user exists') # else: user was found and we will init with that user #init all dat social stuff! assert user, 'User is not passed, and it is not being created' SocialClass.__init__(self, user, *args, **kwargs)
def __init__(self, user=None, *args, **kwargs): ''' Twitter ''' logging.debug('\n\n\n \t\t\t INIT Twitter \n\n\n') self.set_noise_level(*args) # if user is not passed, then check if a user exists with the identity specified. if they do not exist, then create a new one if not user: #user was not passed, check to make sure that the user does not already exist # if the user exists, pass it to SocialClass.__init__ # otherwise, create a new user and pass it that twitter_id = int(kwargs.get('twitter_id')) # twitter_token = kwargs.get('twitter_token') # twitter_token_secret = kwargs.get('twitter_token_secret') #make sure necessary credentials were passed assert twitter_id, 'Did not pass a user, so must pass twitter_id as kwarg' # assert twitter_token, 'Did not pass a user, so must pass twitter_token as kwarg' # assert twitter_token_secret, 'Did not pass a user, so must pass twitter_token_secret as kwarg' #search for the user by that id user = levr.Customer.all().filter('twitter_id', twitter_id).get() # #fetch the user info # response = self.fetch('user') # logging.debug(levr.log_dict(response)) # logging.debug(levr.log_model_props(user)) if not user: logging.debug('user doesnt exist') #user does not exist in database - create a new one! user = levr.create_new_user() else: logging.debug('user exists') # else: user was found and we will init with that user #init all dat social stuff! assert user, 'User is not passed, and it is not being created' SocialClass.__init__(self, user, *args, **kwargs)
def __init__(self, user=None, *args, **kwargs): ''' Facebook ''' logging.debug('\n\n\n \t\t\t INIT FACEBOOK \n\n\n') self.set_noise_level(*args) # if user is not passed, then check if a user exists with the identity specified. if they do not exist, then create a new one if not user: #user was not passed, check to make sure that the user does not already exist # if the user exists, pass it to SocialClass.__init__ # otherwise, create a new user and pass it that facebook_token = kwargs.get('facebook_token') #make sure foursquare token was passed assert facebook_token, 'Did not pass a user, so must pass facebook_token as kwarg' #assign the foursquare_token so that self.fetch will work self.facebook_token = facebook_token #fetch the user info from facebook response = self.fetch('user') logging.debug(levr.log_dict(response)) #get the user id from the remote api call facebook_id = int(response['id']) #search for the user in our db by that id user = levr.Customer.all().filter('facebook_id',facebook_id).get() # logging.debug('\n\n\n\n \t\t\t\t USER \n\n\n\n') logging.debug(user) logging.debug(levr.log_model_props(user)) if not user: logging.debug('user doesnt exist') #user does not exist in database - create a new one! user = levr.create_new_user() else: logging.debug('user exists') # else: user was found and we will init with that user logging.debug(user) #init all dat social stuff! SocialClass.__init__(self, user, *args, **kwargs)
def __init__(self, user=None, *args, **kwargs): ''' Facebook ''' logging.debug('\n\n\n \t\t\t INIT FACEBOOK \n\n\n') self.set_noise_level(*args) # if user is not passed, then check if a user exists with the identity specified. if they do not exist, then create a new one if not user: #user was not passed, check to make sure that the user does not already exist # if the user exists, pass it to SocialClass.__init__ # otherwise, create a new user and pass it that facebook_token = kwargs.get('facebook_token') #make sure foursquare token was passed assert facebook_token, 'Did not pass a user, so must pass facebook_token as kwarg' #assign the foursquare_token so that self.fetch will work self.facebook_token = facebook_token #fetch the user info from facebook response = self.fetch('user') logging.debug(levr.log_dict(response)) #get the user id from the remote api call facebook_id = int(response['id']) #search for the user in our db by that id user = levr.Customer.all().filter('facebook_id', facebook_id).get() # logging.debug('\n\n\n\n \t\t\t\t USER \n\n\n\n') logging.debug(user) logging.debug(levr.log_model_props(user)) if not user: logging.debug('user doesnt exist') #user does not exist in database - create a new one! user = levr.create_new_user() else: logging.debug('user exists') # else: user was found and we will init with that user logging.debug(user) #init all dat social stuff! SocialClass.__init__(self, user, *args, **kwargs)
def post(self,*args,**kwargs): #@UnusedVariable ''' Checks for existing account with that business If the account exists, return true @attention: Only handles the case where a single account is tied to no more than one business @keyword email: required @keyword password: required @keyword business_name: required @keyword vicinity: required @keyword geo_point: required @keyword types: require @keyword development: optional @return: packaged_user with levrToken, packaged_business ''' # for invalid credential responses user_doesnt_own_business_message = 'User does not own that business' # for packaging private = True followers = False # input values email = kwargs.get('email') password = kwargs.get('pw') business_name = kwargs.get('businessName') vicinity = kwargs.get('vicinity') geo_point = kwargs.get('geoPoint') types = kwargs.get('types') development = kwargs.get('development',False) # TODO: switch this to False by default when changing to live phone_number = kwargs.get('phoneNumber','') try: # Convert input data password = enc.encrypt_password(password) types = types.split(',') logging.debug('{}\n{}\n{}\n{}'.format(repr(business_name),repr(vicinity),geo_point,repr(types))) # check for existing entities user = levr.Customer.all().filter('email',email).get() requested_business = levr.Business.all().filter('business_name',business_name).filter('vicinity',vicinity).get() if user: logging.info('User exists') # check password assert user.pw == password, 'Password does not match username' # user should have a business try: business = user.businesses.get() # if the user has a business, it should be the business that was requested assert business, 'User does not own any businesses yet' except: logging.debug('user does not have a business yet - create one') # if the user does not have a business yet, add this one. business = levr.create_new_business(business_name,vicinity,geo_point,types,phone_number, owner=user ) # assert False, user_doesnt_own_business_message else: logging.debug('User owns a business') # logging.debug(levr.log_model_props(business.owner)) # logging.debug(levr.log_model_props(requested_business.owner)) # if requested_business: # assert business.key() == requested_business.key(), user_doesnt_own_business_message else: logging.debug('User does not exist. Create a new one!!') # Create an account for the user with that business user = levr.create_new_user( tester=development, pw=password, email=email, display_name=business_name, ) logging.debug(business_name) logging.debug(levr.log_model_props(user)) if not requested_business: logging.debug('requested business was not found') business = levr.create_new_business(business_name,vicinity,geo_point,types,phone_number, owner=user ) else: logging.debug('requested business was found') business = requested_business # business.owner = user business.put() logging.debug('business: '+repr(business)) #=================================================================== # # Send message to the founders that someone has signed up for the app #=================================================================== if not development: try: from google.appengine.api import mail message = mail.AdminEmailMessage( sender = '*****@*****.**', subject = 'New Merchant', ) message.body = levr.log_model_props(user,['email','display_name',]) message.body += levr.log_model_props(business,['business_name','vicinity']) message.check_initialized() message.send() except: levr.log_error() #=================================================================== # # package and send #=================================================================== packaged_user = api_utils.package_user(user, private, followers,send_token=True) packaged_business = api_utils.package_business(business) response = { 'user' : packaged_user, 'business' : packaged_business } self.send_response(response) # TODO: Merchant connect - handle all cases - new and existing accounts except AssertionError,e: levr.log_error() self.send_error(e)
def post(self, *args, **kwargs): #@UnusedVariable ''' Checks for existing account with that business If the account exists, return true @attention: Only handles the case where a single account is tied to no more than one business @keyword email: required @keyword password: required @keyword business_name: required @keyword vicinity: required @keyword geo_point: required @keyword types: require @keyword development: optional @return: packaged_user with levrToken, packaged_business ''' # for invalid credential responses user_doesnt_own_business_message = 'User does not own that business' # for packaging private = True followers = False # input values email = kwargs.get('email') password = kwargs.get('pw') business_name = kwargs.get('businessName') vicinity = kwargs.get('vicinity') geo_point = kwargs.get('geoPoint') types = kwargs.get('types') development = kwargs.get( 'development', False ) # TODO: switch this to False by default when changing to live phone_number = kwargs.get('phoneNumber', '') try: # Convert input data password = enc.encrypt_password(password) types = types.split(',') logging.debug('{}\n{}\n{}\n{}'.format(repr(business_name), repr(vicinity), geo_point, repr(types))) # check for existing entities user = levr.Customer.all().filter('email', email).get() requested_business = levr.Business.all().filter( 'business_name', business_name).filter('vicinity', vicinity).get() if user: logging.info('User exists') # check password assert user.pw == password, 'Password does not match username' # user should have a business try: business = user.businesses.get() # if the user has a business, it should be the business that was requested assert business, 'User does not own any businesses yet' except: logging.debug( 'user does not have a business yet - create one') # if the user does not have a business yet, add this one. business = levr.create_new_business(business_name, vicinity, geo_point, types, phone_number, owner=user) # assert False, user_doesnt_own_business_message else: logging.debug('User owns a business') # logging.debug(levr.log_model_props(business.owner)) # logging.debug(levr.log_model_props(requested_business.owner)) # if requested_business: # assert business.key() == requested_business.key(), user_doesnt_own_business_message else: logging.debug('User does not exist. Create a new one!!') # Create an account for the user with that business user = levr.create_new_user( tester=development, pw=password, email=email, display_name=business_name, ) logging.debug(business_name) logging.debug(levr.log_model_props(user)) if not requested_business: logging.debug('requested business was not found') business = levr.create_new_business(business_name, vicinity, geo_point, types, phone_number, owner=user) else: logging.debug('requested business was found') business = requested_business # business.owner = user business.put() logging.debug('business: ' + repr(business)) #=================================================================== # # Send message to the founders that someone has signed up for the app #=================================================================== if not development: try: from google.appengine.api import mail message = mail.AdminEmailMessage( sender='*****@*****.**', subject='New Merchant', ) message.body = levr.log_model_props( user, [ 'email', 'display_name', ]) message.body += levr.log_model_props( business, ['business_name', 'vicinity']) message.check_initialized() message.send() except: levr.log_error() #=================================================================== # # package and send #=================================================================== packaged_user = api_utils.package_user(user, private, followers, send_token=True) packaged_business = api_utils.package_business(business) response = {'user': packaged_user, 'business': packaged_business} self.send_response(response) # TODO: Merchant connect - handle all cases - new and existing accounts except AssertionError, e: levr.log_error() self.send_error(e)