def post(self): """ Validates token from authorization header If the token is valid, checks user id Adds user if not already in datastore """ if 'application/json' not in self.request.accept: self.response.status = 400 self.response.write("Cannot complete request, API only supports application/json type") return if 'authorization' not in self.request.headers: self.response.status = 400 self.response.write("Cannot complete request, token must be sent in Authorization header") return tokenString = self.request.headers['authorization'] token = tokenString.split() if len(token) == 2: userID = verifyToken.verifyIDToken(token[1]) if userID is not None: thisUser = ndb.Key('User', userID).get() if thisUser is None: newUser = db_models.User(id=userID) newUser.put() self.response.write(json.dumps(newUser.to_dict())) return else: self.response.write(json.dumps(thisUser.to_dict())) return self.response.status = 400 self.response.write("Cannot complete request, token is invalid")
def post(self): if 'application/json' not in self.request.accept: self.response.status = 406 self.response.write("JSON format support only.") return add_user = db_models.User() username = self.request.get('username', default_value=None) if username: #check if name already exists d = db_models.User.query(db_models.User.username == username) match_u = d.fetch() if match_u: self.response.status = 400 self.response.write("That username already exists.\n") return add_user.username = username key = add_user.put() out = add_user.to_dict() self.response.write(json.dumps(out)) return else: self.response.status = 400 self.response.write("Unique username is required.\n") return
def post(self): #create a new user - must be json format #Post Body: #name - required #email - required #check for proper data format if 'application/json' not in self.request.accept: self.response.set_status( 415, "Unsupported. API only supports application/json MIME type.") self.response.write(self.response.status) return #create a new user record name = self.request.get('name', default_value=None) email = self.request.get('email', default_value=None) new_user = db_models.User() #check that name and email are supplied if name: new_user.name = name else: self.response.set_status( 400, "Invalid Request. Name of user required.") self.response.write(self.response.status) return if email: new_user.email = email else: self.response.set_status( 400, "Invalid Request. Email of user required.") self.response.write(self.response.status) return #check if unique name and email #http://stackoverflow.com/questions/25728615/distinct-usernames-in-python-ndb #chk_key = ndb.Key('db_models.UserProj', name) #chk_use = chk_key.get() #if not chk_use: # self.response.set_status(409,'User name exists.') # self.response.write(self.response.status) # return #all is good add to database key = new_user.put() out = new_user.to_dict() self.response.set_status(201, "New user created.") #self.response.write(self.response.status) self.response.write(json.dumps(out)) return
def post(self): #add user if 'application/json' not in self.request.accept: self.response.status = 406 self.response.status_message = "Not acceptable, API only supports application/json" return new_user = db_models.User() #, default_value=None fName = self.request.get('fName') logging.info(fName) email = self.request.get('email') password = self.request.get('password') #email = self.request.get('email', default_value=None) upRates = 0 dnRates = 0 #age = self.request.get('age') gender = self.request.get('gender') city = self.request.get('city') state = self.request.get('state') #groups = self.request.get('groups[]', default_value=None) #image = self.request.get('image', default_value = None) """ if not fName or not email or not age or not gender or not city or not state: self.response.status = 400 self.response.status_message = "Invalid request" return """ #else: new_user.fName = fName new_user.email = email new_user.password = password #new_user.lName = lName new_user.upRates = upRates new_user.dnRates = dnRates new_user.gender = gender new_user.city = city new_user.state = state #new_user.age = age #new_user.image = image #if groups: #for group in groups: #new_user.groups.append(ndb.Key(db_models.Group, int(group))) key = new_user.put() out = new_user.to_dict() self.response.write(json.dumps(out))
def post(self): self.username = self.form.username.data if db_models.User.query.filter_by(username=self.username).first(): flash('This username is taken!', 'danger') return redirect(request.url) if self.form.password.data == self.form.confirm_password.data: self.hashed_password = bcrypt.generate_password_hash( self.form.password.data).decode('utf-8') user = db_models.User(username=self.username, password=self.hashed_password) db_models.db.session.add(user) db_models.db.session.commit() login_user(user) return redirect(url_for('documents')) else: flash('Passwords do not match!', 'danger') return redirect(request.url)
def post(self): if 'application/json' not in self.request.accept: self.response.status = 406 self.response.status_message = "Not acceptable, API only supports json calls" return new_user = db_models.User() fname = self.request.get('fname', default_value=None) lname = self.request.get('lname', default_value=None) email = self.request.get('email', default_value=None) password = self.request.get('password', default_value=None) offers = self.request.get_all('offers[]', default_value=None) if email: new_user.email = email else: self.response.status = 400 self.response.status_message = "Invalud request" if password: new_user.password = password else: self.response.status = 400 self.response.status_message = "Invalud request" if fname: new_user.fname = fname else: self.response.status = 400 self.response.status_message = "Invalud request" if lname: new_user.lname = lname else: self.response.status = 400 self.response.status_message = "Invalud request" if offers: for offer in offers: new_user.offers.append(ndb.Key(db_models.Off, int(offer))) key = new_user.put() out = new_user.to_dict() print out self.response.write(json.dumps(out)) return
def post(self): """Creates a User entity POST Body Variables: username - Required. Username email - Required. Email name - Real name lists[] - Lists user has authored """ if 'application/json' not in self.request.accept: self.response.status = 406 self.response.status_message = "Not Acceptable, API only supports application/json MIME type" return new_user = db_models.User() username = self.request.get('username', default_value=None) email = self.request.get('email', default_value=None) name = self.request.get('name', default_value=None) lists = self.request.get_all('lists[]', default_value=None) if username: new_user.username = username else: self.response.status = 400 self.response.status_message = "Invalid request, username is Required" if email: new_user.email = email else: self.response.status = 400 self.response.status_message = "Invalid request, email is Required" if name: new_user.name = name if lists: for list in lists: new_user.lists.append(ndb.Key(db_models.List, int(list))) key = new_user.put() out = new_user.to_dict() self.response.write(json.dumps(out)) return