import std/options, ../../waku_types, ../../protocol/waku_store/waku_store_types, ../wakunode2, ./jsonrpc_types ## Conversion tools ## Since the Waku v2 JSON-RPC API has its own defined types, ## we need to convert between these and the types for the Nim API proc toPagingInfo*(pagingOptions: StorePagingOptions): PagingInfo = PagingInfo(pageSize: pagingOptions.pageSize, cursor: if pagingOptions.cursor.isSome: pagingOptions.cursor.get else: Index(), direction: if pagingOptions.forward: PagingDirection.FORWARD else: PagingDirection.BACKWARD) proc toPagingOptions*(pagingInfo: PagingInfo): StorePagingOptions = StorePagingOptions(pageSize: pagingInfo.pageSize, cursor: some(pagingInfo.cursor), forward: if pagingInfo.direction == PagingDirection.FORWARD: true else: false) proc toStoreResponse*(historyResponse: HistoryResponse): StoreResponse = StoreResponse(messages: historyResponse.messages, pagingOptions: if historyResponse.pagingInfo != PagingInfo(): some(historyResponse.pagingInfo.toPagingOptions()) else: none(StorePagingOptions))