def put(self, user_uid): ''' Update an existing user ''' if not verifyToken(user_uid, get_jwt_identity()): user_ns.abort(400, 'Invalid token') editted_data = user_ns.payload editted_data['_id'] = user_uid user = User.find_one(user_uid) if user is None: user_ns.abort(404, 'User not found') user = User(user) user.setData(editted_data) schema = user_edit_data._schema schema['additionalProperties'] = False data = validateData(user.data, schema) if data['error']: user_ns.abort(400, data['message']) try: user.editUserData() return user.get(), 200, {'Location': url_for('api.users_user_item', user_uid=user.data['_id'], _external=True)} except: DatabaseError() user_ns.abort(500, 'Edit user error, please try again')
def post(self, user_uid): """ Post and analysis user audio """ if not verifyToken(user_uid, get_jwt_identity()): audio_ns.abort(400, 'Invalid token') result = request.form file_upload_schema = file_upload_model._schema file_upload_schema['additionalProperties'] = False data = validateData(result, file_upload_schema) if data['error']: audio_ns.abort(400, data['message']) data = data['data'].to_dict() data['user_uid'] = user_uid if 'file_data' not in request.files: audio_ns.abort( 400, 'Audio file shoule be passed for the transcription') file = request.files['file_data'] _, file_extension = os.path.splitext(file.filename) if file_extension.lower() not in ALLOWED_EXTENSIONS: audio_ns.abort(400, '{} is not supported format'.format(file_extension)) user = User(User.find_one(user_uid)) data['user_uid'] = user.data['_id'] data['file_extension'] = file_extension audio = Audio(data) logging_info('User {} upload file {}'.format(user_uid, audio.data['file_name'])) try: audio.saveToDb(file) except: audio_ns.abort(500, 'Save file data error, plase try again') try: audio.doSomeThingWithFile() audio.updataAudioData() return audio.data, 200, { 'Location': url_for('api.audio_audio_url', file_name=audio.data['file_name'], _external=True) } except: DatabaseError() audio_ns.abort(500, 'Save analysis audio error, plase try again')
def get(self, user_uid=None): ''' Get an user data ''' if not verifyToken(user_uid, get_jwt_identity()): user_ns.abort(400, 'Invalid token') user = User({'_id': user_uid}) user = user.get() if user is None: user_ns.abort(404, 'User not found') return user, 200
def get(self, user_uid): """ Get list of user's audio file """ if not verifyToken(user_uid, get_jwt_identity()): return audio_ns.abort(400, 'Invalid token') # return messageResponse('Invalid token', 400) hidden_data = {'file_path': 0, 'file_extension': 0} id = request.args.get('id') query = {'user_uid': user_uid} if id is not None: query['_id'] = ObjectId(id) print(query) return Audio.find(query, hidden_data), 200
def delete(self, user_uid): ''' Delete an user ''' if not verifyToken(user_uid, get_jwt_identity()): user_ns.abort(400, 'Invalid token') try: count = User.delete(user_uid) except: DatabaseError() user_ns.abort(500, 'Deleted fail, please try again') if count == 0: user_ns.abort(404, 'User was deleted') return {'message': 'User is deleted'}, 200
def delete(self, user_uid): """ Delete list of user's audio file """ if not verifyToken(user_uid, get_jwt_identity()): audio_ns.abort(400, 'Invalid token') id = request.args.get('id') query = {'user_uid': user_uid} if id is not None: query['_id'] = ObjectId(id) print(query) try: deleted_count = Audio.delete(query) return { 'message': '{} items were deleted'.format(deleted_count) }, 200 except: DatabaseError() audio_ns.abort(500, 'Deleted fail, please try again')