def post(self): repository_data = request.json config_filename = os.path.join(current_app.instance_path, 'config', 'settings.json') data = glam_io.read_json(config_filename) repository_list = [] if data: repository_list = data.get('repository_list') or [] else: data = {} data['repository'] = repository_data matching_labels = 0 for repo in repository_list: if repo.get('label') == repository_data.get('label'): matching_labels = matching_labels + 1 if matching_labels == 0: repository_list.append(repository_data) data['repository_list'] = repository_list glam_io.write_json(config_filename, data) return None, 201
def get(self): app = current_app config_filename = os.path.join(app.instance_path, 'config', 'settings.json') data = glam_io.read_json(config_filename) if data is None: repository_list = 'No settings and respository_list configured' else: repository_list = data.get('repository_list') or 'No repository_list configured.' return repository_list
def get_repository_url(): config_filename = os.path.join(current_app.instance_path, 'config', 'settings.json') data = glam_io.read_json(config_filename) repository_url = '' if data: if data.get('repository'): repository_url = data.get('repository').get('url') return repository_url
def combine_all_sets_file(bundle_path=None): bundle_path = bundle_path or 'publication_bb' from os import listdir from os.path import isfile, join datadir = os.path.join( current_app.instance_path, 'data', 'harvested', admin.get_repository_label() ) all_recs = {} counts = {} onlyfiles = [f for f in listdir(datadir) if isfile(join(datadir, f))] for f in onlyfiles: if f != 'all_sets.json': filepath = os.path.join(datadir, f) data = glam_io.read_json(filepath) counts[f] = len(list(data)) for item in data: identifier = item.get('identifier') if all_recs.get(identifier): pass else: all_recs[identifier] = item unique_identifiers = len(all_recs.keys()) all_set_records = [] for identifier in all_recs.keys(): all_set_records.append(all_recs.get(identifier)) glam_io.write_json(os.path.join(datadir, 'all_sets.json'), all_set_records) return [{'unique_identifiers': unique_identifiers}, counts ]