Skip to content

Commit 62ade57

Browse files
committed
_
1 parent 308a34f commit 62ade57

File tree

6 files changed

+56
-25
lines changed

6 files changed

+56
-25
lines changed

.github/workflows/build.yaml

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,14 @@ jobs:
1313
name: Build LibSqlite_Turso
1414
runs-on: ubuntu-22.04
1515
steps:
16-
- uses: actions/checkout@v2
17-
- uses: actions-rs/toolchain@v1
16+
- uses: jirutka/setup-alpine@v1
1817
with:
19-
toolchain: stable
20-
- run: |
21-
cargo build
22-
cargo build --release --all-features
23-
24-
25-
18+
branch: v3.15
19+
- run: apk add rust cargo
20+
shell: alpine.sh {0}
21+
- run: cargo build && cargo build --release
22+
shell: alpine.sh {0}
23+
2624
- name: Find built shared library
2725
id: find_artifact
2826
shell: bash

Cargo.lock

Lines changed: 34 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,4 @@ regex = "1.11.1"
1313
serde = { version = "1.0.216", features = ["derive"] }
1414
serde_json = "1.0.134"
1515
tokio = { version = "1.42.0", features = ["rt-multi-thread"] }
16-
reqwest = { version = "0.12.9", features = ["json", "blocking"] }
16+
reqwest = { version = "0.12.9", features = ["json", "blocking", "gzip"] }

bin/sqlite_test.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ void main() {
2121
// "INSERT INTO users (name, email) VALUES ('Alice', '[email protected]')",
2222
];
2323

24-
final db = sqlite3.open('test-database-chima');
24+
final db = sqlite3.open('untrue-necklace');
2525
for (final command in commmands) db.execute(command);
2626

2727
// fetch data

src/lib.rs

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ use std::{
33
collections::HashMap,
44
ffi::{c_int, c_uint, c_void, CStr, CString},
55
os::raw::c_char,
6-
process::exit,
76
slice,
87
sync::Mutex,
98
};
@@ -63,20 +62,20 @@ pub unsafe extern "C" fn sqlite3_open_v2(
6362
let filename = CStr::from_ptr(filename).to_str().unwrap();
6463
if filename.contains(":memory") {
6564
eprintln!("LibSqlite3_Turso Error: Memory store is not supported at runtime");
66-
exit(1);
65+
return SQLITE_MISUSE;
6766
}
6867

6968
let reqwest_client = reqwest::Client::builder()
7069
.user_agent("libsqlite3_turso/1.0.0")
7170
.build()
7271
.unwrap();
7372

74-
let turso_config = get_tokio()
75-
.block_on(get_turso_db(&reqwest_client, filename))
76-
.unwrap_or_else(|err| {
77-
eprintln!("LibSqlite3_Turso Error: {}", err);
78-
exit(1);
79-
});
73+
// get turso config or return SQLITE_ERROR
74+
let turso_config = get_tokio().block_on(get_turso_db(&reqwest_client, filename));
75+
if turso_config.is_err() {
76+
eprintln!("LibSqlite3_Turso Error: {}", turso_config.unwrap_err());
77+
return SQLITE_ERROR;
78+
}
8079

8180
let mock_db = Box::into_raw(Box::new(SQLite3 {
8281
client: reqwest_client,
@@ -86,7 +85,7 @@ pub unsafe extern "C" fn sqlite3_open_v2(
8685
delete_hook: Mutex::new(None),
8786
insert_hook: Mutex::new(None),
8887
update_hook: Mutex::new(None),
89-
turso_config: turso_config,
88+
turso_config: turso_config.unwrap(),
9089
}));
9190

9291
*db = mock_db;

src/proxy.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ async fn send_remote_request(
124124
request: serde_json::Value,
125125
) -> Result<serde_json::Value, Box<dyn Error>> {
126126
let response = client
127-
.post(format!("{}/{}", turso_config.db_url, path))
127+
.post(format!("https://{}/{}", turso_config.db_url, path))
128128
.header("Content-Type", "application/json")
129129
.header("Authorization", format!("Bearer {}", turso_config.db_token))
130130
.json(&request)
@@ -239,14 +239,14 @@ pub async fn get_turso_db(client: &Client, db_name: &str) -> Result<TursoConfig,
239239
.post(format!("{}/db/auth", globe_auth_api))
240240
.body(request_body.to_string())
241241
.send()
242-
.await?;
242+
.await
243+
.map_err(|_| "Failed to fetch auth credentials for database")?;
243244

244245
if !response.status().is_success() {
245246
return Err(format!("Failed to get Auth Token: {}", response.status()).into());
246247
}
247248

248-
let token: String = response.text().await?;
249-
let db_info = serde_json::from_str(&token)?;
250-
249+
let json = response.json().await?;
250+
let db_info = serde_json::from_value(json)?;
251251
Ok(db_info)
252252
}

0 commit comments

Comments
 (0)