def generate_callback_id(self): randid = shortuuid.uuid()[:8] mdb = mongoClient(config.MONGO_URI, config.MONGO_USER, config.MONGO_PASSWORD, config.MONGO_DB) while mdb.check_callback_id_in_db(randid) is True: randid = shortuuid.uuid()[:8] self.callback_id = randid mdb.register_callback_id(self.callback_id)
def set_error_text(self): mdb = mongoClient(config.MONGO_URI, config.MONGO_USER, config.MONGO_PASSWORD, config.MONGO_DB) if self.error_code: self.error_text = mdb.get_error_message_from_code(self.error_code) # We may want a catch if the code is not seen in the database else: self.error_text = None
def create_entry_for_study(self): # Order here matters data = [self.study_id, self.callback_id, self.file_path, self.md5, self.assembly, self.readme, self.entryUUID, self.raw_ss ] mdb = mongoClient(config.MONGO_URI, config.MONGO_USER, config.MONGO_PASSWORD, config.MONGO_DB) mdb.insert_new_study(data)
def get_data_for_callback_id(self): mdb = mongoClient(config.MONGO_URI, config.MONGO_USER, config.MONGO_PASSWORD, config.MONGO_DB) data = mdb.get_data_from_callback_id(self.callback_id) self.get_metadata_errors() if data is None: if mdb.check_callback_id_in_db(self.callback_id): # callback registered but studies not yet added (due to async) return True else: raise RequestedNotFound( "Couldn't find resource with callback id: {}".format( self.callback_id)) for study_metadata in data: study_id = st.set_var_from_dict(study_metadata, 'studyID', None) callback_id = st.set_var_from_dict(study_metadata, 'callbackID', None) file_path = st.set_var_from_dict(study_metadata, 'filePath', None) md5 = st.set_var_from_dict(study_metadata, 'md5', None) assembly = st.set_var_from_dict(study_metadata, 'assembly', None) retrieved = st.set_var_from_dict(study_metadata, 'retrieved', None) data_valid = st.set_var_from_dict(study_metadata, 'dataValid', None) error_code = st.set_var_from_dict(study_metadata, 'errorCode', None) readme = st.set_var_from_dict(study_metadata, 'readme', None) entryUUID = st.set_var_from_dict(study_metadata, 'entryUUID', None) author_name = st.set_var_from_dict(study_metadata, 'authorName', None) pmid = st.set_var_from_dict(study_metadata, 'pmid', None) gcst = st.set_var_from_dict(study_metadata, 'gcst', None) raw_ss = st.set_var_from_dict(study_metadata, 'rawSS', None) study = st.Study(study_id=study_id, callback_id=callback_id, file_path=file_path, md5=md5, assembly=assembly, retrieved=retrieved, data_valid=data_valid, error_code=error_code, readme=readme, entryUUID=entryUUID, author_name=author_name, pmid=pmid, gcst=gcst, raw_ss=raw_ss) self.study_obj_list.append(study) return self.study_obj_list
def get_study_from_db(self): mdb = mongoClient(config.MONGO_URI, config.MONGO_USER, config.MONGO_PASSWORD, config.MONGO_DB) study_metadata = mdb.get_study_metadata(self.study_id) if study_metadata: self.study_id = set_var_from_dict(study_metadata, 'studyID', None) self.callback_id = set_var_from_dict(study_metadata, 'callbackID', None) self.file_path = set_var_from_dict(study_metadata, 'filePath', None) self.md5 = set_var_from_dict(study_metadata, 'md5', None) self.assembly = set_var_from_dict(study_metadata, 'assembly', None) self.retrieved = set_var_from_dict(study_metadata, 'retrieved', None) self.data_valid = set_var_from_dict(study_metadata, 'dataValid', None) self.error_code = set_var_from_dict(study_metadata, 'errorCode', None) self.readme = set_var_from_dict(study_metadata, 'readme', None) self.entryUUID = set_var_from_dict(study_metadata, 'entryUUID', None) self.author_name = set_var_from_dict(study_metadata, 'authorName', None) self.pmid = set_var_from_dict(study_metadata, 'pmid', None) self.gcst = set_var_from_dict(study_metadata, 'gcst', None) self.raw_ss = set_var_from_dict(study_metadata, 'rawSS', None) self.set_error_text() return study_metadata
def store_publication_details(self): mdb = mongoClient(config.MONGO_URI, config.MONGO_USER, config.MONGO_PASSWORD, config.MONGO_DB) mdb.update_publication_details(self.study_id, self.author_name, self.pmid, self.gcst)
def store_error_code(self): # error codes are in the error table (see the DB_SCHEMA) mdb = mongoClient(config.MONGO_URI, config.MONGO_USER, config.MONGO_PASSWORD, config.MONGO_DB) mdb.update_error_code(self.study_id, self.error_code)
def store_data_valid_status(self): mdb = mongoClient(config.MONGO_URI, config.MONGO_USER, config.MONGO_PASSWORD, config.MONGO_DB) mdb.update_data_valid_status(self.study_id, self.data_valid)
def store_retrieved_status(self): mdb = mongoClient(config.MONGO_URI, config.MONGO_USER, config.MONGO_PASSWORD, config.MONGO_DB) mdb.update_retrieved_status(self.study_id, self.retrieved)
def remove(self): mdb = mongoClient(config.MONGO_URI, config.MONGO_USER, config.MONGO_PASSWORD, config.MONGO_DB) mdb.delete_study_entry(self.study_id)
def remove_callback_id(self): mdb = mongoClient(config.MONGO_URI, config.MONGO_USER, config.MONGO_PASSWORD, config.MONGO_DB) mdb.remove_callback_id(self.callback_id)
def get_metadata_errors(self): mdb = mongoClient(config.MONGO_URI, config.MONGO_USER, config.MONGO_PASSWORD, config.MONGO_DB) self.metadata_errors = mdb.get_metadata_errors(self.callback_id)
def store_metadata_errors(self): mdb = mongoClient(config.MONGO_URI, config.MONGO_USER, config.MONGO_PASSWORD, config.MONGO_DB) mdb.update_metadata_errors(self.callback_id, self.metadata_errors)