async def create_and_update_node(): async with RfApiClient(auth=UserAuth(USERNAME, PASSWORD), ) as api_client: sleep_time = 5.0 m = await api_client.maps.get_map_by_id(MAP_ID) props = CreateNodePropertiesDto.empty() props.global_.title = f'New node title \nWait {sleep_time} seconds to update' node = await api_client.nodes.create( CreateNodeDto(map_id=m.id, parent=m.root_node_id, position=(PositionType.P, '-1'), properties=props)) print('New node properties:', node.body.properties.dict(by_alias=True)) await sleep(sleep_time) updated_node = await api_client.nodes.update_by_id( node.id, NodeUpdateDto(properties=PropertiesUpdateDto( update=[GlobalPropertyUpdateDto(value='Title updated')], add=[ UserPropertyCreateDto( key='user property', type_id=NodePropertyType.TEXT, value='Value of user property', visible=True, ) ]))) print('Updated node properties:', updated_node.body.properties.dict(by_alias=True))
async def load_map(): async with RfApiClient(auth=UserAuth(USERNAME, PASSWORD), ) as api_client: m = await api_client.maps.get_map_by_id(MAP_ID) print('Map name:', m.name) print('Nodes total:', m.node_count) root = await api_client.maps.get_map_nodes(MAP_ID) print('Root node title:', root.body.properties.global_.title)
async def main(): # set logging level logging.basicConfig(level=logging.DEBUG) main_logger.setLevel(logging.DEBUG) async with RfApiClient( auth=UserAuth(USERNAME, PASSWORD), log_response_body=True # log response bodies ) as api_client: user = await api_client.users.get_current() print('Current user is', user)
async def get_favorite_nodes(): async with RfApiClient( auth=UserAuth(USERNAME, PASSWORD), ) as api_client: m = await api_client.maps.get_map_by_id(MAP_ID) print(m) me = await api_client.users.get_current() print(me) favorite_tag = me.tags[0] favorite_nodes = await api_client.tags.get_nodes(favorite_tag.id) print(favorite_nodes) tagged = await api_client.tags.add_tag(favorite_tag.id, m.root_node_id) print("tagged: ", tagged) await api_client.tags.remove_tag(favorite_tag.id, m.root_node_id) print("and removed")
async def get_current_user(): async with RfApiClient( auth=UserAuth(USERNAME, PASSWORD), ) as api_client: me = await api_client.users.get_current() print(me)
import os from rf_api_client import RfApiClient from rf_api_client.rf_api_client import UserAuth from rf_client import RfClient USERNAME = os.getenv('USERNAME') PASSWORD = os.getenv('PASSWORD') MAP_ID = os.getenv('MAP_ID') logging.basicConfig(level=logging.INFO) api_client = RfApiClient( auth=UserAuth(USERNAME, PASSWORD), ) async def load_map(): async with RfClient(api_client) as client: m = await client.maps.load_map(MAP_ID) print('Map name:', m.map_info.name) print('Map users:', m.users) print('Map types:', m.types) print('Root node title:', m.tree.root.body.properties.global_.title) print('Nodes count:', len(list(m.tree.root.get_all_descendants()))) if __name__ == '__main__': loop = asyncio.get_event_loop()
async def api(secret: Secret): async with RfApiClient(auth=UserAuth(secret.username, secret.password), base_url=URL(secret.base_url)) as api: yield api
from rf_event_listener.listener import MapsListener, EventConsumer from rf_client import RfClient from rf_client.map_wrapper import MapWrapper from rf_client.tree_wrapper import NodeWrapper USERNAME = os.getenv('USERNAME') PASSWORD = os.getenv('PASSWORD') MAP_ID = os.getenv('MAP_ID') KV_PREFIX = os.getenv('KV_PREFIX') VIEW_ROOT_ID = os.getenv('VIEW_ROOT_ID', None) logging.basicConfig(level=logging.INFO) api_client = RfApiClient(auth=UserAuth(USERNAME, PASSWORD), ) events_api = HttpEventsApi(base_url=DEFAULT_RF_URL, ) def first_line(title: str) -> str: try: return title.strip().splitlines()[0].strip() except IndexError: return '' def print_tree(m: MapWrapper): def inner(branch: NodeWrapper, prefix: str = ''): print( f'{prefix}{first_line(branch.body.properties.global_.title)} {branch.body.comments_count}'
async def create_map(): async with RfApiClient(auth=UserAuth(USERNAME, PASSWORD), ) as api_client: m = await api_client.maps.create_map( NewMapDto(name='Example Map', layout=MapLayout.LR)) print('New map name:', m.name)
async def auth(): async with RfApiClient( auth=UserAuth(USERNAME, PASSWORD), ) as api_client: user = await api_client.users.get_current() print('Current user is', user)