Feat Update: Support for paging while fetching trasnactions
diff --git a/common/src/commonMain/kotlin/org/mifos/openbanking/data/datasources/network/Api.kt b/common/src/commonMain/kotlin/org/mifos/openbanking/data/datasources/network/Api.kt
index 5491614..b71d387 100644
--- a/common/src/commonMain/kotlin/org/mifos/openbanking/data/datasources/network/Api.kt
+++ b/common/src/commonMain/kotlin/org/mifos/openbanking/data/datasources/network/Api.kt
@@ -1,5 +1,7 @@
 package org.mifos.openbanking.data.datasources.network
 
+import org.mifos.openbanking.domain.usecase.fetchTransactions.Sort
+
 const val CONSUMER_KEY = "lxhlkssvfgoheqjdhdr4tq1lkj5h5jklhn2rqxd0"
 
 const val API_HOST = "https://apisandbox.openbankproject.com/"
@@ -14,8 +16,21 @@
     return "obp/v4.0.0/banks/$bankId/accounts/$accountId/owner/transactions/$transactionId/transaction"
 }
 
-fun fetchTransactionsPath(bankId: String, accountId: String): String {
-    return "obp/v4.0.0/my/banks/$bankId/accounts/$accountId/transactions"
+fun fetchTransactionsPath(
+    bankId: String,
+    accountId: String,
+    sort: Sort,
+    limit: Long,
+    offset: Long,
+    fromDate: String,
+    toDate: String
+): String {
+    return "obp/v4.0.0/my/banks/$bankId/accounts/$accountId/transactions" +
+            "?sort_direction=${sort.direction}" +
+            "&limit=$limit" +
+            "&offset=$offset" +
+            "&from_date=$fromDate" +
+            "&to_date=$toDate"
 }
 
 fun bankBalancePath(bankId: String): String {
diff --git a/common/src/commonMain/kotlin/org/mifos/openbanking/data/datasources/network/TransactionApi.kt b/common/src/commonMain/kotlin/org/mifos/openbanking/data/datasources/network/TransactionApi.kt
index f60d60c..9aa1906 100644
--- a/common/src/commonMain/kotlin/org/mifos/openbanking/data/datasources/network/TransactionApi.kt
+++ b/common/src/commonMain/kotlin/org/mifos/openbanking/data/datasources/network/TransactionApi.kt
@@ -111,7 +111,12 @@
             val response = client.get<String>(
                 API_HOST + fetchTransactionsPath(
                     request.bankId,
-                    request.accountId
+                    request.accountId,
+                    request.sort,
+                    request.limit,
+                    request.offset,
+                    request.fromDate,
+                    request.toDate
                 )
             ) {
                 headers {
diff --git a/common/src/commonMain/kotlin/org/mifos/openbanking/domain/usecase/fetchTransactions/FetchTransactionsRequest.kt b/common/src/commonMain/kotlin/org/mifos/openbanking/domain/usecase/fetchTransactions/FetchTransactionsRequest.kt
index 7135355..fe51431 100644
--- a/common/src/commonMain/kotlin/org/mifos/openbanking/domain/usecase/fetchTransactions/FetchTransactionsRequest.kt
+++ b/common/src/commonMain/kotlin/org/mifos/openbanking/domain/usecase/fetchTransactions/FetchTransactionsRequest.kt
@@ -6,7 +6,13 @@
 class FetchTransactionsRequest(
     val token: String,
     val bankId: String,
-    val accountId: String
+    val accountId: String,
+    val sort: Sort = Sort.DESCENDING,
+    val limit: Long = 50,
+    val offset: Long = 0,
+    val fromDate: String = "0000-00-00T00:00:00.000Z",
+    val toDate: String = "3049-01-01T00:00:00.000Z"
+
 ) :
     BaseRequest {
 
@@ -14,4 +20,9 @@
         return true
     }
 
+}
+
+enum class Sort(val direction: String) {
+    ASCENDING("ASC"),
+    DESCENDING("DESC")
 }
\ No newline at end of file