def _remove_alias(self, entity: wdi_core.WDItemEngine, objct: LiteralElement) -> wdi_core.WDItemEngine: lang = get_lang_from_literal(objct) logging.debug("Removing alias @%s of %s", lang, entity) curr_aliases = entity.get_aliases(lang) try: curr_aliases.remove(objct.content) entity.set_aliases(curr_aliases, lang, append=False) except ValueError: logging.warning( "Alias %s@%s does not exist for object %s. Skipping removal...", objct.content, lang, entity.wd_item_id) return entity
def _temp_route_oauth_write_test(): # One-off test to ensure pipes are running, add an alias to WikiDP item identity = identify_user() for key in identity.keys(): logging.info('KEY: %s VALUE: %s', key, identity.get(key)) item = WDItemEngine(wd_item_id="Q51139559") item.set_aliases(['WikiDP Application'], append=True) # verify the api is working by getting this item assert item.get_label() == "Wikidata for Digital Preservation" wdi_login = get_wdi_login() # verify edit token exists, this is what WDI calls assert wdi_login.get_edit_token() assert "user" in identity.get('groups') # verify user in user group # verify user in user group assert "autoconfirmed" in identity.get('groups') assert "edit" in identity.get('rights') # verify user in user group assert "editpage" in identity.get('grants') # verify user in user group updated = item.write(wdi_login) # fails due to no permissions return jsonify(updated)
def _set_alias(self, entity: wdi_core.WDItemEngine, objct: LiteralElement) -> wdi_core.WDItemEngine: lang = get_lang_from_literal(objct) logging.debug("Changing alias @%s of %s", lang, entity) entity.set_aliases([objct.content], lang) return entity