XmtpElixirSdk.Sync (xmtp_elixir_sdk v0.1.2)

Copy Markdown

Archive, restore, and device-sync operations.

This module is for exporting conversation state, importing it somewhere else, and coordinating sync between installations.

Reach for it when you need to:

  • build an archive blob
  • inspect archive metadata
  • import an archive
  • discover available archives
  • request or apply device sync

Summary

Functions

archive_metadata(client, data, key)

@spec archive_metadata(XmtpElixirSdk.Client.t(), binary(), binary()) ::
  {:ok, XmtpElixirSdk.Types.ArchiveMetadata.t()}
  | {:error, XmtpElixirSdk.Error.t()}

create_archive(client, key, opts \\ %Types.ArchiveOptions{})

@spec create_archive(
  XmtpElixirSdk.Client.t(),
  binary(),
  XmtpElixirSdk.Types.ArchiveOptions.t()
) ::
  {:ok, binary()} | {:error, XmtpElixirSdk.Error.t()}

import_archive(client, data, key)

@spec import_archive(XmtpElixirSdk.Client.t(), binary(), binary()) ::
  {:ok, :ok} | {:error, XmtpElixirSdk.Error.t()}

list_available_archives(client, days_cutoff)

@spec list_available_archives(XmtpElixirSdk.Client.t(), non_neg_integer()) ::
  {:ok, [XmtpElixirSdk.Types.AvailableArchiveInfo.t()]}
  | {:error, XmtpElixirSdk.Error.t()}

process_sync_archive(client, archive_pin \\ nil)

@spec process_sync_archive(XmtpElixirSdk.Client.t(), String.t() | nil) ::
  {:ok, :ok} | {:error, XmtpElixirSdk.Error.t()}

send_sync_archive(client, pin, options \\ %Types.ArchiveOptions{}, server_url \\ nil)

@spec send_sync_archive(
  XmtpElixirSdk.Client.t(),
  String.t(),
  XmtpElixirSdk.Types.ArchiveOptions.t(),
  String.t()
) :: {:ok, :ok} | {:error, XmtpElixirSdk.Error.t()}

send_sync_request(client, options \\ %Types.ArchiveOptions{}, server_url \\ nil)

@spec send_sync_request(
  XmtpElixirSdk.Client.t(),
  XmtpElixirSdk.Types.ArchiveOptions.t(),
  String.t()
) ::
  {:ok, :ok} | {:error, XmtpElixirSdk.Error.t()}

sync_all_device_sync_groups(client)

@spec sync_all_device_sync_groups(XmtpElixirSdk.Client.t()) ::
  {:ok, XmtpElixirSdk.Types.GroupSyncSummary.t()}
  | {:error, XmtpElixirSdk.Error.t()}