forked from
rocksky.app/rocksky
A decentralized music tracking and discovery platform built on AT Protocol 馃幍
1use anyhow::Error;
2use sqlx::{Pool, Postgres};
3
4use crate::xata::api_key::ApiKey;
5
6pub async fn get_apikey(
7 pool: &Pool<Postgres>,
8 apikey: &str,
9 did: &str,
10) -> Result<Option<ApiKey>, Error> {
11 let results: Vec<ApiKey> = sqlx::query_as(
12 r#"
13 SELECT * FROM api_keys
14 LEFT JOIN users ON api_keys.user_id = users.xata_id
15 WHERE api_keys.api_key = $1 AND users.did = $2
16 "#,
17 )
18 .bind(apikey)
19 .bind(did)
20 .fetch_all(pool)
21 .await?;
22
23 if results.len() == 0 {
24 return Ok(None);
25 }
26
27 Ok(Some(results[0].clone()))
28}