def message(): db.create_all() if request.values.get('Body', None).strip().lower() == 'register': user = Users.query.filter_by(number=request.values.get('From')).first() if user: user.active = 1 db.session.commit() else: user = Users(request.values.get('From')) db.session.add(user) db.session.commit() resp = twilio.twiml.Response() resp.message("Confirmed! Stay tuned for dog and cat pics! Text \"pause\" to stop hearing from us :( .") return str(resp) elif request.values.get('Body', None).strip().lower() == 'pause': user = Users.query.filter_by(number=request.values.get('From')).first() if not user: resp = twilio.twiml.Response() resp.message("Hmm - you're not in our system! Want to sign up? Reply with \"register\"") return str(resp) else: user.active = 0 db.session.commit() resp = twilio.twiml.Response() resp.message("You won't get any more messages - for now. Reply with \"register\" to start receiving again.") return str(resp) else: resp = twilio.twiml.Response() resp.message("Sorry - I don't understand that command!") return str(resp)
def register_view(self): form = RegistrationForm(request.form) if request.method == 'POST' and form.validate(): user = Users() user.username = form.username.data user.email = form.email.data user.roles = ','.join(form.role.data) # we hash the users password to avoid saving it as plaintext in the db, # remove to use plain text: user.password = generate_password_hash(form.password.data) Session.add(user) Session.commit() login.login_user(user) flash('Thanks for registering') return redirect(url_for('.index')) link = '<p>Already have an account? <a href="' + url_for('.login_view') + '">Click here to log in.</a></p>' form_roles = [] roles = Session.query(Role).all() for role in roles: form_roles.append((role.key, role.name)) form.role.choices = form_roles self._template_args['form'] = form self._template_args['link'] = link return super(MyAdminIndexView, self).index()
def getUser(userId): user = Users.get(Users, userId) if user is None: return jsonify(Common.falseReturn(Common, None, '找不到数据')) else: return jsonify(Common.trueReturn(Common, Users.output(Users, user)))
def disable_user(user_id): user = Users.get_user(user_id) user.is_active = False db.session.commit() users = Users.get_all_users() return render_template("admin/user_table.html", users=users)
def post(self): # Get all values from signup form username = self.request.get("username") password = self.request.get("password") # Query DB for existing username userInDB = Users.gql("where name = :1", username).get() # If the username matches the DB query if userInDB: # Query DB to match password to username userPassword = Users.gql("where password = :1", password).get() # If the password matches, set cookie with user_id and redirect to welcome screen if userPassword: # Generate a cookie storing user_id self.response.headers.add_header('Set-Cookie', 'user_id=%s; Path=/' % str(userInDB.key().id())) self.redirect("/") # Throw error if password doesn't match else: error = "The username or password is incorrect." self.render('login.html', login = "******", error = error) # If the username doesn't match the DB query else: error = "The username or password is incorrect." self.render('login.html', login = "******", error = error)
def process_registration(): """Register new user if email not already in db.""" f_name = request.form.get('first_name') l_name = request.form.get('last_name') email = request.form.get('email') cell = request.form.get('cell') password_hash = request.form.get('password') cell_number = cell_verify(cell) #verify cell number using Twilio API. #if cell verify returns error- then number is invalid. if cell_number == False: #exception made for error to return false. flash("That is not a valid phone number, please try again!") return redirect('/register') # if user cell already exists, ask user to login. if Users.query.filter(Users.cell_number == cell_number).first(): flash("That cell number already exists, please login.") return redirect('/login') else: # if user cell does not exist, add to db user = Users(f_name=f_name, l_name=l_name, email=email, cell_number=cell_number) user.set_password(password_hash) db.session.add(user) db.session.commit() #place user in session. session['user_name'] = user.f_name session['user_id'] = user.user_id # flash("Successfully logged in!"). #need to fix formating for flash messages return redirect('/user-page')
def result(): if request.method == 'POST': try: if 'jabong' in request.form['url']: dict_price = jabong_find_price(request.form['url']) price = dict_price['price'] elif 'amazon' in request.form['url']: dict_price = amazon_find_price(request.form['url']) price = dict_price['price'] elif 'flipkart' in request.form['url']: dict_price = flipkart_find_price(request.form['url']) price = dict_price['price'] elif 'myntra' in request.form['url']: dict_price = myntra_find_price(request.form['url']) price = dict_price['price'] else: return render_template('not_found.html') url = request.form['url'] email = request.form['mail'] user = Users(email=email, price=price, url=url) user.save() return render_template('message.html') except: return render_template('not_found.html')
def main(loop,**kw): yield from orm.create_pools(loop = loop, pool_size=5, **kw) # s = yield from Users.findAll() # s[0].name='fanlizhou' # yield from s[0].update() user = Users(email='*****@*****.**', password='******', admin=0, name='ccc', image='about:_blank') yield from user.save()
def data(): db.create_all() one = Users(name='MaxPayne', password='******') two = Users(name='GordonFreeman', password='******') db.session.add(one) db.session.add(two) db.session.commit() print('SUCCESS')
def post(): args = user_parser.parse_args() if not Users.email_is_unique(args['email'], None) or not Users.name_is_unique(args['name'], None): abort_user_not_unique() new_user = Users(name=args['name'], email=args['email'], password=args['password']) db.session.add(new_user) db.session.commit() return {'users': new_user.as_dict()}, 201
def add_user(): name = request.json['name'] password = request.json['password'] new_user = Users(name=name, password=password) db.session.add(new_user) db.session.commit() output = new_user.toDict() return json.dumps(output)
def registration(): if request.method == 'POST': reg_data = json.loads(request.data) try: user = Users(**reg_data) user.save() return json.dumps({'success': True, 'user': user.id}), 200 except: return json.dumps({'success': False}), 400
def updateUser(key): new = Users() data = request.json try: if new.updateDb(key, **data): return response_success, accepted except Exception as e: print(e) return response_failure, notfound
def add_users(): try: data = request.get_json() u = Users() for key in data.keys(): setattr(u,key,data[key]) u.save() return jsonify({"message":"Usuario cadastrado com sucesso!"}) except Exception as e: return jsonify({"message":"Falhou ao cadastrar: {}".format(e)})
def deleteUser(userId): user = Users.get(Users, userId) if user is None: return jsonify(Common.falseReturn(Common, None, '找不到要删除的数据')) else: deleteRow = Users.delete(Users, userId) user = Users.get(Users, userId) if user is None: return getUsers() else: return jsonify(Common.falseReturn(Common, None, '删除失败'))
def start(bot, update): print(update) username = update.message.from_user.username name = update.message.from_user.first_name uid = update.message.from_user.id try: Users.get(Users.telegram_id == uid) except DoesNotExist: Users.create(telegram_id=uid, username=username, name=name) if uid in ADMINS: bot.sendMessage(uid, start_msg, disable_web_page_preview=True) return bot.sendMessage(uid, start_msg, disable_web_page_preview=True)
def put(user_id): user = db.session.query(Users).filter(Users.id == user_id).one_or_none() if not user: abort_user_doesnt_exist(user_id) args = user_parser.parse_args() if not Users.email_is_unique(args['email'], user_id) or not Users.name_is_unique(args['name'], user_id): abort_user_not_unique() user.name = args['name'] user.email = args['email'] user.password = args['password'] db.session.add(user) db.session.commit() return {'user': user.as_dict()}
def addUser(): user_name = request.form.get('user_name') user_password = request.form.get('user_password') user_nickname = request.form.get('user_nickname') user_email = request.form.get('user_email') user = Users(user_name=user_name, user_password=user_password, user_nickname=user_nickname, user_email=user_email) result = Users.add(Users, user) if user.user_id: return getUser(user.user_id) else: return jsonify(Common.falseReturn(Common, None, result))
def start(bot, update): username = update.message.from_user.username name = update.message.from_user.first_name uid = update.message.from_user.id if user_data.get(uid): del user_data[uid] try: Users.get(Users.telegram_id == uid) except DoesNotExist: Users.create(telegram_id=uid, username=username, name=name) bot.sendMessage(uid, 'Привет! Выбирайте действие ' + emojize(':winking_face:'), disable_web_page_preview=True, reply_markup=ReplyKeyboardMarkup(start_keyboard)) return ConversationHandler.END
def test(): yield from orm.create_pool(loop=loop, user='******', password='******', db='awesome') # u=Users(name='Test', email='*****@*****.**', passwd='1234567890', image='about:blank') u = Users(name='dflhuang', email='*****@*****.**', passwd='0123', image='about:blank', id='110') yield from u.save()
def createdb(init=True): """creer la base de donnee a partir de la liste des tables presentent dans le module models """ import model from sqlobject import SQLObject, sqlhub from model import Users, Groupe, Role constraints = [] for (name, table) in vars(model).iteritems(): if (inspect.isclass(table)) and (issubclass( table, SQLObject)) & (table != SQLObject): if context.conf["sgbd"] == "postgresql": constraints.extend( table.createTable(applyConstraints=False, ifNotExists=True) ) # True pour ne pas creer la table si elle existe deja else: table.createTable(ifNotExists=True) print "Creation de la table `" + name + '` OK' # Les contraintes ne sont ajoute qu'a la fin (pour postgresql) if context.conf["sgbd"] == "postgresql": if constraints: for constraint in constraints: if constraint: sqlhub.processConnection.query(constraint) if not init: return #ajout d'un groupe par default, role et association (ne rien faire si il existe deja) if not list(Groupe.select(Groupe.q.nom == 'visiteur')): #. groupe = Groupe(nom="visiteur") if not list(Role.select(Role.q.name == 'visiteur')): #. role = Role(name="visiteur") groupe.addRole(role) #Ajout d'un groupe admin et d'un admin (ne rien faire si il existe deja) if not list(Users.select(Users.q.pseudo == 'admin')): #. user = Users(nom="", prenom="", pseudo="admin", password="******") print "\n--> Creation d'un compte `admin` mot de passe : `nimda`" groupe = Groupe(nom="admin") role = Role(name="admin") groupe.addRole(role) user.addGroupe(groupe) print "Tables crees avec succes\n"
def signup(): try: if request.method == 'POST': session['email'] = request.form['mail'] email = request.form['mail'] password = request.form['password'] name = request.form['name'] user = Users(password=password, email=email, name=name) user.save() fid = user.id return render_template('note.html', fid=fid, name=name) else: return render_template('signup.html') except: msg = "Email was already taken" return render_template('signup.html', msg=msg)
def recipes_list(): username = current_user.get_id() recipes_filter = recipes recipes_ordered = recipes pred_rating = pd.Series([None]*recipes_ordered.shape[0], index = recipes_ordered.index) allergies = [] if username != None: user = Users().getUser(username) allergiesAux = user['allergies'] if isinstance(allergiesAux, list): allergies = allergiesAux else: allergies = allergiesAux.split(',') if request.method == 'POST': time = request.form['time'] ingredients = request.form['ingredients'] search = request.form['search'] recipes_filter = recipeClass.getFilteredRecipes(search, time, ingredients,0, allergies) #filter if (len(search) > 0 and username!=None): recipes_ordered,pred_rating = recipeClass.getRecipesRecommender(recipes_filter,username,a) else: recipes_ordered = recipes_filter pred_rating = pd.Series([None]*recipes_ordered.shape[0], index = recipes_ordered.index) rating = 3 #return render_template('recipes/index.html', recipes=recipes_filter.head(100), rating=rating) return render_template('recipes/index.html', recipes=recipes_ordered.head(100), rating=rating, pred_rating=pred_rating.head(100))
def set_users(self, users): for person_id, display_name in users.items(): self.session.merge( Users(person_id=person_id, display_name=display_name, collections=0)) self.session.commit()
def post(self): args = parser.parse_args() username = args['name'] password = args['password'] if not username: abort(404, message="please choose a name") new_user = username.lower() current = Users.query.filter_by(name=new_user).first() if current: abort( 404, message="{} already exist. please choose another name".format( new_user)) if not password: abort(404, message="please choose a password") if len(password) < 6: abort(404, message= "please choose a password that has up to 5 or more letters") user = Users(name=new_user, password=generate_password_hash(password)) db.session.add(user) db.session.commit() return jsonify({ "message": "{} registered successfully".format(new_user), 'status_code': "200" })
def get(self): user_id = self.request.cookies.get('user_id', False) user = Users.get_by_id(int(user_id)) if user_id: self.render('welcome.html', username = user.name) else: self.render('signup.html')
def signup(): form = SignupForm() session['mssg'] = "" if form.validate_on_submit(): user = Users.query.filter_by(email=form.email.data).first() if user is None: hashed_pass = generate_password_hash(form.password.data, method='sha256') new_user = Users(username=form.username.data, email=form.email.data, password=hashed_pass) # user_table = UserTableCreator(form.email.data) # Base.metadata.create_all(engine) db.session.add(new_user) db.session.commit() db.session.close() return redirect(url_for('login')) else: session['mssg'] = "Email ID already in use. Please login" return render_template('register.html', form=form, subtitle="Signup", mssg=session['mssg']) return render_template('register.html', subtitle="Signup", form=form, mssg=session['mssg']), 200
def db_write_user(data): summary = Users(**data) session.add(summary) # pushing data to db session.commit() session.close()
def createdb(init=True): """creer la base de donnee a partir de la liste des tables presentent dans le module models """ import model from sqlobject import SQLObject, sqlhub from model import Users, Groupe, Role constraints = [] for (name, table) in vars(model).iteritems(): if (inspect.isclass(table)) and (issubclass(table, SQLObject)) & (table != SQLObject): if context.conf["sgbd"] == "postgresql": constraints.extend(table.createTable(applyConstraints=False, ifNotExists=True)) # True pour ne pas creer la table si elle existe deja else: table.createTable(ifNotExists=True) print "Creation de la table `"+name+'` OK' # Les contraintes ne sont ajoute qu'a la fin (pour postgresql) if context.conf["sgbd"] == "postgresql": if constraints: for constraint in constraints: if constraint: sqlhub.processConnection.query(constraint) if not init: return #ajout d'un groupe par default, role et association (ne rien faire si il existe deja) if not list(Groupe.select(Groupe.q.nom=='visiteur')):#. groupe = Groupe(nom="visiteur") if not list(Role.select(Role.q.name=='visiteur')):#. role = Role(name="visiteur") groupe.addRole(role) #Ajout d'un groupe admin et d'un admin (ne rien faire si il existe deja) if not list(Users.select(Users.q.pseudo=='admin')):#. user = Users(nom="", prenom="", pseudo="admin", password="******") print "\n--> Creation d'un compte `admin` mot de passe : `nimda`" groupe = Groupe(nom="admin") role = Role(name="admin") groupe.addRole(role) user.addGroupe(groupe) print "Tables crees avec succes\n"
def updateUser(userId): user = Users.get(Users, userId) if user is None: return jsonify(Common.falseReturn(Common, None, '找不到要修改的数据')) else: user_name = request.form.get('user_name') user_password = request.form.get('user_password') user_nickname = request.form.get('user_nickname') user_email = request.form.get('user_email') user.user_name = user_name user.user_password = user_password user.user_nickname = user_nickname user.user_email = user_email result = Users.update(Users) return getUser(user.user_id)
def add_user(req_data): try: user = Users(req_data.name, req_data.email, req_data.password) db.session.add(user) db.session.commit() return {"message":"Data added successfully"} except Exception as e: print(e)
def createUser(): user = Users() Users.startengine() try: user.create(**request.json) except Exception as e: print(e) user.rollback() return response_failure, invalid return response_success, created
def register(): form = Register_Form() if form.validate_on_submit(): user = Users(username=form.name.data, password=form.pwd.data) db.session.add(user) db.session.commit() flash('注册成功') return redirect(url_for('eNote.index')) return render_template('register.html', form=form)
def index(): if request.method == 'POST': if not request.form['first_name'] or not request.form['last_name']: return input_not_found() else: User = Users(request.form['first_name'], request.form['last_name']) db.session.add(User) db.session.commit() return redirect(url_for('index')) return render_template('home.html', Users=Users.query.all())
def get_all_users(): users = Users.get_all() users_list = [] for user in users: user_data = {} user_data['name'] = user.name user_data['email'] = user.email user_data['password'] = user.password users_list.append(user_data) return {"users": users_list}
def check_price(): user_infos = Users.select().where(Users.mail_send == False) for user in user_infos: new_price = find_price(user.url) if 'amazon' in user.url: user_info = amazon_find_price(user.url) elif 'jabong' in user.url: user_info = jabong_find_price(user.url) elif 'myntra' in user.url: user_info = myntra_find_price(user.url) else: user_info = flipkart_find_price(user.url) new_price = price['price'] if float(new_price) < float(user.price): content = "<h3>Hey price of your item {} is change from {} to {} click on {} and go shopping</h3>".format( user_info['product_title'], user.price, new_price, user.url) send_mail(user.email, content) query = Users.update(mail_send=True).where(Users.id == user.id) query.execute()
def post(self): errors = {} # Get all values from signup form username = self.request.get("username") password = self.request.get("password") verify = self.request.get("verify") email = self.request.get("email") # Validate form data and return errors if invalid if not util.valid_username(username): errors["userError"] = "That isn't a valid username." if not util.valid_password(password): errors["passwordError"] = "That isn't a valid password." if not verify == password: errors["verifyError"] = "Your passwords don't match." if not util.valid_email(email): errors["emailError"] = "That isn't a valid email." # If errors exist render the page with the errors # If no errors exist redirect to welcome page if errors: errors["userValue"] = username errors["emailValue"] = email self.render('signup.html', **errors) else: # Create the user entity with validated data if email: user = Users(name = username, password = password, email = email) else: user = Users(name = username, password = password) user.put() # Generate a cookie storing user_id self.response.headers.add_header('Set-Cookie', 'user_id=%s; Path=/' % str(user.key().id())) #self.render('/wikihome.html', home="active", logged_in=True) self.redirect('/')
def register_user(email, name, password, image=_DEFAULT_IMAGE): if not name or not name.strip(): raise APIValueError('name') if not email or not _RE_EMAIL.match(email): raise APIValueError('email') if not password or _RE_SHA1.match(password): raise APIValueError('password') user = yield from Users.find('email=?',[email]) if user: raise APIError('register:failed','email','Email is already used.') uid = next_id() sha1_password = '******' % (uid, password) user = Users(id=uid, name=name, email=email, password=hashlib.sha1(sha1_password.encode('utf-8')).hexdigest(),image=image) yield from user.save() r = aiohttp.web.Response() r.set_cookie(COOKIE_NAME, user2cookie(user, 86400), max_age=86400, httponly=True) user.password = '******' r.content_type = 'application/json' r.body = json.dumps(user, ensure_ascii=False).encode('utf-8') return r
def check_auth(self, *args): self.userid, self.user_email, self.credentials = load_session_credentials(self) self.mirror_service = create_service('mirror', 'v1', self.credentials) if self.credentials: # validate credentials try: self.credentials.refresh(httplib2.Http()) return handler_method(self, *args) except AccessTokenRefreshError: store_userdetails(self, '', '') credentials_entity = Credentials.get_by_key_name(self.userid) users_entity = Users.get_by_key_name(key_names=self.user_email) if users_entity: users_entity.delete() if credentials_entity: credentials_entity.delete() self.redirect('/auth')
def basic_authentication(token): # g.user = None # try: # data = jwt.loads(token) # except: # return False # if 'username' in data: # g.user = data['username'] # return True # return False user = Users.verify_auth_token(token, session=db.session) if not user: user = db.session.query(Users).filter(Users.name == token).one_or_none() if not user: return False g.user = user return True
def cookie2user(cookie_str): if not cookie_str: return None try: L = cookie_str.split('-') if len(L) != 3: return None uid, expires, sha1 = L if int(expires) < time.time(): return None user = yield from Users.find('id=?',[uid]) if user is None: return None s = '%s-%s-%s-%s' % (uid, user.password, expires, _COOKIE_KEY) if sha1 != hashlib.sha1(s.encode('utf-8')).hexdigest(): logging.info('invalid sha1') return None user.password = "******" return user except Exception as e: logging.exception(e) return None
def api_authenticate(email, password): if not email: raise APIValueError('email', 'Invalid email.') if not password: raise APIValueError('password','Invalid password.') user = yield from Users.find('email=?',[email]) if not user: raise APIValueError('email','Email not exist.') #check password sha1 = hashlib.sha1() sha1.update(user.id.encode('utf-8')) sha1.update(b':') sha1.update(password.encode('utf-8')) if user.password != sha1.hexdigest(): raise APIValueError('password','Invalid password') r = aiohttp.web.Response() r.set_cookie(COOKIE_NAME, user2cookie(user, 86400), max_age=86400, httponly=True) user.password = '******' r.content_type = 'application/json' r.body = json.dumps(user,ensure_ascii=False).encode('utf-8') return r
def post(self): Utilities._init_handler(self) if self.empty_query_string('user_email', 'message'): self.render('add-to-timeline.html') else: user_email = self.get_parameter('user_email', None) logging.debug('Request Email (%s)' % user_email) user_entity = Users.get_by_key_name(key_names=user_email) if not user_entity: self.add_error('Unknown email address. Have you registered with the service ?') else: user_id = user_entity.credentials_key credentials = StorageByKeyName(Credentials, user_id, 'credentials').get() mirror_service = util.create_service('mirror', 'v1', credentials) credentials_valid = False # make sure credentials are valid try: credentials.refresh(httplib2.Http()) credentials_valid = True except AccessTokenRefreshError: # Access has been revoked. util.store_userdetails(self, '', '') credentials_entity = Credentials.get_by_key_name(self.userid) user_entity_delete = Users.get_by_key_name(key_names=user_email) if credentials_entity: credentials_entity.delete() if user_entity_delete: user_entity_delete.delete() if credentials_valid: message = self.get_parameter('message', None) is_html = self.get_parameter('is_html', 'False') == 'True' image_url = self.get_parameter('image_url', None) image = self.get_parameter('image', None) logging.info('Inserting timeline item for (%s)' % user_email) body = { 'notification': {'level': 'DEFAULT'}, 'menuItems': [ {'action': 'DELETE'} ] } if is_html: body['html'] = message else: body['text'] = message if image_url: if image_url.startswith('/'): image_url = util.get_full_url(self, image_url) resp = urlfetch.fetch(image_url, deadline=20) media = MediaIoBaseUpload(io.BytesIO(resp.content), mimetype='image/jpeg', resumable=True) elif image: media = MediaIoBaseUpload(io.BytesIO(base64.b64decode(image)), mimetype='image/jpeg') else: media = None # self.mirror_service is initialized in util.auth_required. mirror_service.timeline().insert(body=body, media_body=media).execute() self.add_parameter('success', True) self.add_to_json('success', True) logging.info('Successfully inserted timeline item for (%s)' % user_email) else: self.add_error('Revoked Credentials.') self.render('add-to-timeline.html')
class DevfestCdhApi(remote.Service): def __init__(self): self.users = Users() self.quests = Quests() self.game = Game() """ Users """ @endpoints.method(message_types.VoidMessage, UsersCollection_m, path='user', http_method='GET', name='users.list') def users_list(self, unused_request): usrs = self.users.list() logging.info(usrs) return usrs QUERY = endpoints.ResourceContainer( message_types.VoidMessage, query=messages.StringField(1, variant=messages.Variant.STRING)) @endpoints.method(QUERY, UsersCollection_m, path='userSearch/{query}', http_method='GET', name='users.search') def users_search(self, request): try: return self.users.search(request.query) except (IndexError, TypeError): raise endpoints.NotFoundException('User %s not found.' % (request.id)) ID_RESOURCE = endpoints.ResourceContainer( message_types.VoidMessage, id=messages.IntegerField(1, variant=messages.Variant.INT64)) @endpoints.method(ID_RESOURCE, User_m, path='user/{id}', http_method='GET', name='users.getUser') def user_get(self, request): try: return self.users.search(request.id) except (IndexError, TypeError): raise endpoints.NotFoundException('User %s not found.' % (request.id)) MULTIPLY_METHOD_RESOURCE_QUEST = endpoints.ResourceContainer( user_id=messages.IntegerField(2, variant=messages.Variant.INT64, required=True), faction_id=messages.IntegerField(3, variant=messages.Variant.INT64, required=True) ) @endpoints.method(MULTIPLY_METHOD_RESOURCE_QUEST, User_stats_m, path='userStats/{user_id}', http_method='GET', name='users.getUserStats') def user_stat(self, request): try: return self.users.get_stats(self.game, request.user_id, request.faction_id) except (IndexError, TypeError): raise endpoints.NotFoundException('User %s not found.' % (request.id)) MULTIPLY_METHOD_RESOURCE = endpoints.ResourceContainer(User_m) # , # name=messages.StringField(2, variant=messages.Variant.STRING, # required=True)) @endpoints.method(MULTIPLY_METHOD_RESOURCE, User_m, path='user', http_method='POST', name='users.addUser') def user_add(self, request): return self.users.create(request.name, request.email) #, request.faction) #return User(name=request.name) #* request.name MULTIPLY_METHOD_RESOURCE_FACTION = endpoints.ResourceContainer( user_id=messages.IntegerField(2, variant=messages.Variant.INT64, required=True), faction_id=messages.IntegerField(3, variant=messages.Variant.INT64, required=True) ) @endpoints.method(MULTIPLY_METHOD_RESOURCE_FACTION, User_m, path='setFraction/{user_id}', http_method='POST', name='users.setFaction') def user_set_fraction(self, request): return self.users.set_faction(self.game, request.user_id, request.faction_id) @endpoints.method(ID_RESOURCE, User_m, path='user/{id}', http_method='DELETE', name='users.delUser') def user_delete(self, request): try: return self.users.delete(request.id) except (IndexError, TypeError): raise endpoints.NotFoundException('User %s not found.' % (request.id,)) """ User Quests """ MULTIPLY_METHOD_RESOURCE_QUEST = endpoints.ResourceContainer( user_id=messages.IntegerField(2, variant=messages.Variant.INT64, required=True), quest_id=messages.IntegerField(3, variant=messages.Variant.INT64, required=True) ) @endpoints.method(ID_RESOURCE, SolvedQuestsCollection_m, path='userPoints/{id}', http_method='GET', name='users.getPoints') def user_get_points(self, request): # try: return self.users.get_points(request.id) # except (IndexError, TypeError): # raise endpoints.NotFoundException('User %s not found.' % # (request.id)) @endpoints.method(ID_RESOURCE, SolvedQuestSum_m, path='userPointsSum/{id}', http_method='GET', name='users.getPointsSum') def user_get_points_sum(self, request): try: return self.users.get_points_sum_m(request.id) except (IndexError, TypeError): raise endpoints.NotFoundException('User %s not found.' % (request.id)) MULTIPLY_METHOD_RESOURCE_POINTS = endpoints.ResourceContainer( user_id=messages.IntegerField(2, variant=messages.Variant.INT64, required=True), points=messages.IntegerField(3, variant=messages.Variant.INT64, required=True) ) @endpoints.method(MULTIPLY_METHOD_RESOURCE_POINTS, SolvedQuest_m, path='givePoints/{user_id}', http_method='POST', name='users.givePoints') def user_give_points(self, request): return self.users.add_points(request.user_id, request.points) @endpoints.method(MULTIPLY_METHOD_RESOURCE_QUEST, SolvedQuest_m, path='questSolved/{user_id}', http_method='POST', name='users.questSolved') def user_quest_solved(self, request): try: return self.users.solve_quest(request.user_id, request.quest_id) except: raise endpoints.ForbiddenException('Quest solved or not in faction') """ Quests """ @endpoints.method(message_types.VoidMessage, QuestsCollection_m, path='quest', http_method='GET', name='quests.list') def quests_list(self, unused_request): return self.quests.list() ID_RESOURCE = endpoints.ResourceContainer( message_types.VoidMessage, id=messages.IntegerField(1, variant=messages.Variant.INT64) ) @endpoints.method(ID_RESOURCE, QuestsCollection_m, path='freactionQuest/{id}', http_method='GET', name='quests.listFractionQuests') def quests_list_fraction(self, request): return self.quests.list_by_fraction(request.id) ID_RESOURCE = endpoints.ResourceContainer( message_types.VoidMessage, id=messages.IntegerField(1, variant=messages.Variant.INT64) ) @endpoints.method(ID_RESOURCE, Quest_m, path='quest/{id}', http_method='GET', name='quests.getQuest') def quest_get(self, request): try: return self.quests.get(request.id) except (IndexError, TypeError): raise endpoints.NotFoundException('Quest %s not found.' % (request.id)) MULTIPLY_METHOD_RESOURCE = endpoints.ResourceContainer(Quest_m) # , # name=messages.StringField(2, variant=messages.Variant.STRING, # required=True)) @endpoints.method(MULTIPLY_METHOD_RESOURCE, Quest_m, path='quest', http_method='POST', name='quests.addQuest') def quest_add(self, request): return self.quests.create(request.name, request.factionId, request.points, request.num) #return User(name=request.name) #* request.name @endpoints.method(ID_RESOURCE, Quest_m, path='quest/{id}', http_method='DELETE', name='quests.delQuest') def quest_delete(self, request): try: return self.quests.delete(request.id) except (IndexError, TypeError): raise endpoints.NotFoundException('Quest %s not found.' % (request.id,)) """ Game """ @endpoints.method(message_types.VoidMessage, FactionStats_m, path='stats', http_method='GET', name='faction.Stats') def faction_stats_get(self, request): # try: return self.game.stats() # except (IndexError, TypeError): # raise endpoints.NotFoundException('Quest %s not found.') ID_RESOURCE = endpoints.ResourceContainer( message_types.VoidMessage, id=messages.IntegerField(1, variant=messages.Variant.INT64)) @endpoints.method(ID_RESOURCE, FactionFull_m, path='factionHiring/{id}', http_method='GET', name='faction.hiring') def faction_hiring(self, request): # try: return self.game.faction_hiring(request.id) # except (IndexError, TypeError): # raise endpoints.NotFoundException('Quest %s not found.') LIMIT = endpoints.ResourceContainer( message_types.VoidMessage, limit=messages.IntegerField(1, variant=messages.Variant.INT64)) @endpoints.method(LIMIT, Leaderboard_m, path='leaderboard/{limit}', http_method='GET', name='leaderboard.get') def leaderboard_get(self, request): try: return self.game.leaderboard(request.limit) except (IndexError, TypeError): raise endpoints.NotFoundException('Quest %s not found.') VALUE = endpoints.ResourceContainer( message_types.VoidMessage, value=messages.IntegerField(1, variant=messages.Variant.INT64)) @endpoints.method(VALUE, FactionMinPoints_m, path='factionMinPoints', http_method='POST', name='faction.minPoints') def faction_min_points(self, request): # try: return self.game.set_min_faction_points(request.value) # except (IndexError, TypeError): # raise endpoints.NotFoundException('Quest %s not found.') @endpoints.method(message_types.VoidMessage, FactionMinPoints_m, path='factionMinPoints', http_method='GET', name='faction.getMinPoints') def faction_get_min_points(self, ususedRequest): return self.game.get_min_faction_points_m()
def __init__(self): self.users = Users() self.quests = Quests() self.game = Game()
def get(self, id): json_friends = Users.get_friends(id) self.write(json_friends)