|
@@ -1,6 +1,6 @@
|
|
|
use uuid::Uuid;
|
|
use uuid::Uuid;
|
|
|
use chrono::{DateTime, Utc};
|
|
use chrono::{DateTime, Utc};
|
|
|
-use sqlx::{PgPool, FromRow};
|
|
|
|
|
|
|
+use sqlx::{PgPool, FromRow, Type};
|
|
|
use crate::{
|
|
use crate::{
|
|
|
http_error::HttpError
|
|
http_error::HttpError
|
|
|
};
|
|
};
|
|
@@ -17,6 +17,8 @@ pub struct Purchase {
|
|
|
pub created_at: DateTime<Utc>
|
|
pub created_at: DateTime<Utc>
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+#[derive(Type)]
|
|
|
|
|
+#[sqlx(type_name = "status")]
|
|
|
pub enum Status {
|
|
pub enum Status {
|
|
|
Pending,
|
|
Pending,
|
|
|
Succeeded,
|
|
Succeeded,
|
|
@@ -98,7 +100,7 @@ impl Purchase {
|
|
|
Ok(())
|
|
Ok(())
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- pub async fn update_status(db: &PgPool, stripe_id: String, status: Status) -> Result<(), HttpError> {
|
|
|
|
|
|
|
+ pub async fn update_status(db: &PgPool, stripe_id: String, status: Status) -> Result<Purchase, HttpError> {
|
|
|
let purchase = sqlx::query_as::<_, Purchase>(
|
|
let purchase = sqlx::query_as::<_, Purchase>(
|
|
|
"UPDATE purchases
|
|
"UPDATE purchases
|
|
|
SET status = $1
|
|
SET status = $1
|