class AuthenticationToken(Resource): def __init__(self, config, api_response, mongo_connection): self.config = config self.startTime = datetime.now() self.api_response = api_response self.users = Users(mongo_connection, False) self.parser = reqparse.RequestParser() def get(self): return notFound(self.api_response.failed) """ @api {post} /auth/token fetch user information @apiVersion 1.0.0 @apiName post-token @apiGroup AUTHENTICATION @apiPermission all @apiDescription fetch user information via token @apiParam (body) {String} key user key """ def post(self): self.parser.add_argument('key', type=str) data = self.parser.parse_args() if self.checkRequiredPostParameters(data) is False: return self.api_response.failed('data', ['key']) try: queryData = self.getData(data['key']) if not bool(queryData): return self.api_response.failed('token', '') return self.api_response.success('token', queryData, startTime=self.startTime) except Exception as e: return self.api_response.failed('token', str(e)) def put(self): return notFound(self.api_response.failed) def delete(self): return notFound(self.api_response.failed) # --------------------------------------------------------------------------------------------------------------------- def checkRequiredPostParameters(self, data): if data['key'] is None: return False return True def getData(self, kId): return self.users.get({'key': kId})
def assign_badge_clean(user_id): user = Users.get(user_id) places_cleaned = user.places_cleaned badge = None if places_cleaned == 1: badge = Badges.get(id=1) elif places_cleaned == 2: badge = Badges.get(id=4) elif places_cleaned == 5: badge = Badges.get(id=5) elif places_cleaned == 10: badge = Badges.get(id=6) if badge is not None: Users_Badges.create(user=user_id, badge=badge.id) points = Users.get(Users.id == user_id).points + badge.points query = Users.update(points=points).where(Users.id == user_id) query.execute()
def assign_badge_reported(user_id): user = Users.get(user_id) places_reported = user.places_reported badge = None if places_reported == 1: badge = Badges.get(id=3) elif places_reported == 2: badge = Badges.get(id=7) elif places_reported == 3: badge = Badges.get(id=8) elif places_reported == 5: badge = Badges.get(id=9) Users_Badges.create(user=user_id, badge=badge.id) if badge is not None: Users_Badges.create(user=user_id, badge=badge.id) points = Users.get(Users.id == user_id).points + badge.points query = Users.update(points=points).where(Users.id == user_id) query.execute()
def going(): user_id = get_jwt_identity() event_id = request.form['event_id'] tmp = Users_Events.get_or_none(Users_Events.user == user_id and Users_Events.event == event_id) if tmp is not None: return jsonify({'success': False, 'message': 'Already going'}), 200 Users_Events.create(user=user_id, event=event_id) points = Users.get(id=user_id).points + 10 query = Users.update(points=points).where(Users.id == user_id) query.execute() return jsonify({'success': True, 'message': 'Created successfully'}), 200
class CoreUser(Resource): def __init__(self, config, api_response, mongo_connection): self.config = config self.startTime = datetime.now() self.api_response = api_response self.users = Users(mongo_connection, False) self.parser = reqparse.RequestParser() """ @api {get} /core/user/:id get user @apiVersion 1.0.0 @apiName get @apiGroup USERS @apiPermission authenticated-user @apiDescription get user @apiParam (url segment) {String} id user id @apiParam (url parameter) {String} key key search Ex. ?key=name """ def get(self, id=None): self.parser.add_argument('key', type=str, location='args', default='_id') data = self.parser.parse_args() try: queryData = self.getOneData(data['key'], id) return self.api_response.success('get', queryData, startTime=self.startTime) except Exception as e: return self.api_response.failed('get', str(e)) def post(self, id=None): return notFound(self.api_response.failed) """ @api {put} /core/user/:id update user @apiVersion 1.0.0 @apiName put @apiGroup USERS @apiPermission authenticated-user @apiDescription update user @apiParam (url segment) {String} id user id @apiParam (body) {String} [code] user code @apiParam (body) {String} [firstName] first name @apiParam (body) {String} [lastName] last name @apiParam (body) {String} [email] unique email address @apiParam (body) {String} [phone] unique phone number @apiParam (body) {Boolean} [active] is active user """ def put(self, id=None): self.parser.add_argument('code', type=str) self.parser.add_argument('firstName', type=str) self.parser.add_argument('lastName', type=str) self.parser.add_argument('email', type=str) self.parser.add_argument('phone', type=str) self.parser.add_argument('active', type=bool) data = self.parser.parse_args() try: updateData = self.updateOneData(data, id) if not bool(updateData): return self.api_response.failed('put', '') return self.api_response.success('put', updateData, startTime=self.startTime) except Exception as e: return self.api_response.failed('put', str(e)) """ @api {delete} /core/user/:id delete user @apiVersion 1.0.0 @apiName delete @apiGroup USERS @apiPermission authenticated-user @apiDescription delete user @apiParam (url segment) {String} id user id @apiParam (url parameter) {Boolean} force is force delete Ex. ?force=true """ def delete(self, id=None): self.parser.add_argument('force', type=bool, default=False) data = self.parser.parse_args() try: deleteData = self.deleteOneData(data['force'], id) if not bool(deleteData): return self.api_response.failed('delete', '') return self.api_response.success('delete', deleteData, startTime=self.startTime) except Exception as e: return self.api_response.failed('delete', str(e)) # --------------------------------------------------------------------------------------------------------------------- def getOneData(self, key, kId): if key == '_id': return self.users.getById(kId) else: return self.users.get({key: kId}) def updateOneData(self, data, kId): return self.users.updateById(kId, removeNone(data)) def deleteOneData(self, force, kId): if force is True: return self.users.deleteById(kId) else: return self.users.updateById(kId, {'active': False})
def index(): user = Users.get(Users.id == 3) return user.email