* computer switch * some fixes; github action * added pr to master * sqlx database setup * switched intial GHA test db * removed sqlx database setup * unfinished patch route * bug fixes + tests * more tests, more fixes, cargo fmt * merge fixes * more tests, full reorganization * fmt, clippy * sqlx-data * revs * removed comments * delete revs
31 lines
1.1 KiB
Rust
31 lines
1.1 KiB
Rust
#![allow(dead_code)]
|
|
|
|
use chrono::Utc;
|
|
use labrinth::{
|
|
database::{self, models::generate_pat_id},
|
|
models::pats::Scopes,
|
|
};
|
|
|
|
use super::database::TemporaryDatabase;
|
|
|
|
// Creates a PAT with the given scopes, and returns the access token
|
|
// Interfacing with the db directly, rather than using a ourte,
|
|
// allows us to test with scopes that are not allowed to be created by PATs
|
|
pub async fn create_test_pat(scopes: Scopes, user_id: i64, db: &TemporaryDatabase) -> String {
|
|
let mut transaction = db.pool.begin().await.unwrap();
|
|
let id = generate_pat_id(&mut transaction).await.unwrap();
|
|
let pat = database::models::pat_item::PersonalAccessToken {
|
|
id,
|
|
name: format!("test_pat_{}", scopes.bits()),
|
|
access_token: format!("mrp_{}", id.0),
|
|
scopes,
|
|
user_id: database::models::ids::UserId(user_id),
|
|
created: Utc::now(),
|
|
expires: Utc::now() + chrono::Duration::days(1),
|
|
last_used: None,
|
|
};
|
|
pat.insert(&mut transaction).await.unwrap();
|
|
transaction.commit().await.unwrap();
|
|
pat.access_token
|
|
}
|