/
rorikstr
/
multiberry-backend
Обзор
Документация
Войти
/
rorikstr
/
multiberry-backend
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
src/db/transactions.rs
69 строк
2 KB
Rorik Star Platinum
(feat) balance
07 ноя 2025, 21:22
07 ноя 2025, 21:22
aeb9514
Код
Авторство
О чём код?
// src/db/transactions.rs use sqlx::PgPool; use chrono::{DateTime, Utc}; use tracing::info; pub async fn store_transaction( pool: &PgPool, transaction_id: &str, account_id: &str, bank_code: &str, amount: &str, currency: &str, credit_debit_indicator: &str, status: &str, booking_date_time: DateTime<Utc>, value_date_time: Option<DateTime<Utc>>, transaction_information: &str, bank_transaction_code: Option<&str>, ) -> Result<(), sqlx::Error> { sqlx::query!( r#" INSERT INTO transactions (transaction_id, account_id, bank_code, amount, currency, credit_debit_indicator, status, booking_date_time, value_date_time, transaction_information, bank_transaction_code) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11) ON CONFLICT (transaction_id, bank_code) DO NOTHING "#, transaction_id, account_id, bank_code, amount, currency, credit_debit_indicator, status, booking_date_time, value_date_time, transaction_information, bank_transaction_code, ) .execute(pool) .await?; info!("✅ Stored transaction: {}", transaction_id); Ok(()) } pub async fn get_cached_transactions( pool: &PgPool, account_id: &str, page: u32, limit: u32, ) -> Result<Vec<String>, sqlx::Error> { sqlx::query_scalar::<_, String>( r#" SELECT transaction_id FROM transactions WHERE account_id = $1 ORDER BY booking_date_time DESC LIMIT $2 OFFSET $3 "#, ) .bind(account_id) .bind(limit as i64) .bind(((page - 1) * limit) as i64) .fetch_all(pool) .await }