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.