コード例 #1
0
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})
コード例 #2
0
ファイル: badge.py プロジェクト: AngCosmin/hackathon-bestem
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()
コード例 #3
0
ファイル: badge.py プロジェクト: AngCosmin/hackathon-bestem
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()
コード例 #4
0
ファイル: event.py プロジェクト: AngCosmin/hackathon-bestem
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
コード例 #5
0
ファイル: user.py プロジェクト: jnplonte/flask-api
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})
コード例 #6
0
def index():
    user = Users.get(Users.id == 3)
    return user.email