SubscriptionRepository

Classes > Sync.SQLite > SubscriptionRepository

Repository for managing sync subscriptions in SQLite. Implements spec Section 10 (Real-Time Subscriptions).

public static class SubscriptionRepository

Methods

GetAll(SqliteConnection)

public static Result<IReadOnlyList<SyncSubscription>, SyncError> GetAll(SqliteConnection connection)

Gets all subscriptions from _sync_subscriptions table.

Parameters:

Name Type Description
connection SqliteConnection SQLite connection.

Returns: SyncError> - List of subscriptions or database error.

GetById(SqliteConnection, string)

public static Result<SyncSubscription?, SyncError> GetById(SqliteConnection connection, string subscriptionId)

Gets a subscription by ID.

Parameters:

Name Type Description
connection SqliteConnection SQLite connection.
subscriptionId String Subscription ID to look up.

Returns: SyncError> - Subscription if found, null if not found, or database error.

GetByTable(SqliteConnection, string)

public static Result<IReadOnlyList<SyncSubscription>, SyncError> GetByTable(SqliteConnection connection, string tableName)

Gets subscriptions for a specific table.

Parameters:

Name Type Description
connection SqliteConnection SQLite connection.
tableName String Table name to filter by.

Returns: SyncError> - List of subscriptions for the table or database error.

GetByOrigin(SqliteConnection, string)

public static Result<IReadOnlyList<SyncSubscription>, SyncError> GetByOrigin(SqliteConnection connection, string originId)

Gets subscriptions for a specific origin.

Parameters:

Name Type Description
connection SqliteConnection SQLite connection.
originId String Origin ID to filter by.

Returns: SyncError> - List of subscriptions for the origin or database error.

Insert(SqliteConnection, SyncSubscription)

public static Result<bool, SyncError> Insert(SqliteConnection connection, SyncSubscription subscription)

Inserts a subscription into _sync_subscriptions.

Parameters:

Name Type Description
connection SqliteConnection SQLite connection.
subscription SyncSubscription Subscription to insert.

Returns: SyncError> - Success or database error.

Delete(SqliteConnection, string)

public static Result<bool, SyncError> Delete(SqliteConnection connection, string subscriptionId)

Deletes a subscription by ID.

Parameters:

Name Type Description
connection SqliteConnection SQLite connection.
subscriptionId String Subscription ID to delete.

Returns: SyncError> - Success or database error.

DeleteByOrigin(SqliteConnection, string)

public static Result<int, SyncError> DeleteByOrigin(SqliteConnection connection, string originId)

Deletes all subscriptions for an origin.

Parameters:

Name Type Description
connection SqliteConnection SQLite connection.
originId String Origin ID to delete subscriptions for.

Returns: SyncError> - Number of deleted subscriptions or database error.

DeleteExpired(SqliteConnection, string)

public static Result<int, SyncError> DeleteExpired(SqliteConnection connection, string currentTimestamp)

Deletes expired subscriptions.

Parameters:

Name Type Description
connection SqliteConnection SQLite connection.
currentTimestamp String Current timestamp to compare against.

Returns: SyncError> - Number of deleted subscriptions or database error.