Skip to content

Commit 9d6f03d

Browse files
committed
optimized memory management and api usage
1 parent 2214d1b commit 9d6f03d

File tree

4 files changed

+61
-28
lines changed

4 files changed

+61
-28
lines changed

Cargo.lock

Lines changed: 2 additions & 2 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
@@ -1,6 +1,6 @@
11
[package]
22
name = "pxserv"
3-
version = "1.0.0"
3+
version = "1.0.1"
44
description = "PxServ Library for Rust"
55
edition = "2021"
66
authors = ["mustafa 'pxsty' kok <[email protected]>"]

README.md

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,26 +21,29 @@ use pxserv::PxServ;
2121

2222
fn main() {
2323
// PxServ örneği oluşturma
24-
let client = PxServ::new("API_KEY".to_string());
24+
let client = PxServ::new("API_KEY");
2525

2626
// Veri kaydetme
27-
let status = client.setdata("temperature".to_string(), "22.5°C".to_string());
28-
println!("Durum: {}, Mesaj: {}", status.status, status.message);
27+
let set_response = client.setdata("temperature", "22.5°C");
28+
println!(
29+
"Durum: {}, Mesaj: {}",
30+
set_response.status, set_response.message
31+
);
2932

3033
// Veri çekme
31-
let response = client.getdata("temperature".to_string());
32-
if let Some(data) = response.data {
33-
println!("Veri: {}", data);
34-
}
34+
let get_response = client.getdata("temperature");
35+
println!(
36+
"Durum: {}, Mesaj: {}, Veri : {:?}",
37+
get_response.status, get_response.message, get_response.data
38+
);
3539

3640
// Veri silme
37-
let delete_status = client.removedata("temperature".to_string());
41+
let remove_response = client.removedata("temperature");
3842
println!(
3943
"Silme Durumu: {}, Mesaj: {}",
40-
delete_status.status, delete_status.message
44+
remove_response.status, remove_response.message
4145
);
4246
}
43-
4447
```
4548

4649
### Katkıda Bulunma

src/lib.rs

Lines changed: 45 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,13 @@ pub struct PxServStatus {
1212
}
1313

1414
impl PxServ {
15-
pub fn new(apikey: String) -> PxServ {
16-
PxServ { apikey }
15+
pub fn new(apikey: &str) -> PxServ {
16+
PxServ {
17+
apikey: apikey.to_string(),
18+
}
1719
}
18-
pub fn setdata(&self, key: String, value: String) -> PxServStatus {
20+
21+
pub fn setdata(&self, key: &str, value: &str) -> PxServStatus {
1922
let client = Client::new();
2023

2124
let request_body = json!({
@@ -25,7 +28,7 @@ impl PxServ {
2528

2629
let request = client
2730
.post("https://api.pxserv.net/database/setData")
28-
.header("apikey", self.apikey.to_string())
31+
.header("apikey", &self.apikey)
2932
.json(&request_body)
3033
.send();
3134

@@ -34,8 +37,16 @@ impl PxServ {
3437
let response_text = response.text().unwrap();
3538
let json_response: Value = serde_json::from_str(&response_text).unwrap();
3639

37-
let status = json_response.get("status").unwrap().to_string();
38-
let message = json_response.get("message").unwrap().to_string();
40+
let status = json_response
41+
.get("status")
42+
.and_then(|s| s.as_i64())
43+
.expect("PxServ API ERROR")
44+
.to_string();
45+
let message = json_response
46+
.get("message")
47+
.and_then(|s| s.as_str())
48+
.expect("PxServ API ERROR")
49+
.to_string();
3950

4051
return PxServStatus {
4152
status,
@@ -52,7 +63,8 @@ impl PxServ {
5263
}
5364
}
5465
}
55-
pub fn getdata(&self, key: String) -> PxServStatus {
66+
67+
pub fn getdata(&self, key: &str) -> PxServStatus {
5668
let client = Client::new();
5769

5870
let request_body = json!({
@@ -61,7 +73,7 @@ impl PxServ {
6173

6274
let request = client
6375
.post("https://api.pxserv.net/database/getData")
64-
.header("apikey", self.apikey.to_string())
76+
.header("apikey", &self.apikey)
6577
.json(&request_body)
6678
.send();
6779

@@ -70,15 +82,24 @@ impl PxServ {
7082
let response_text = response.text().unwrap();
7183
let json_response: Value = serde_json::from_str(&response_text).unwrap();
7284

73-
let status = json_response.get("status").unwrap().to_string();
74-
let message = json_response.get("message").unwrap().to_string();
85+
let status = json_response
86+
.get("status")
87+
.and_then(|s| s.as_i64())
88+
.expect("PxServ API ERROR")
89+
.to_string();
90+
let message = json_response
91+
.get("message")
92+
.and_then(|s| s.as_str())
93+
.expect("PxServ API ERROR")
94+
.to_string();
7595

7696
let data = if status == "200" {
7797
Some(
7898
json_response
7999
.get("data")
80100
.and_then(|f| f.get("value"))
81-
.unwrap()
101+
.and_then(|s| s.as_str())
102+
.expect("PxServ API ERROR")
82103
.to_string(),
83104
)
84105
} else {
@@ -100,7 +121,8 @@ impl PxServ {
100121
}
101122
}
102123
}
103-
pub fn removedata(&self, key: String) -> PxServStatus {
124+
125+
pub fn removedata(&self, key: &str) -> PxServStatus {
104126
let client = Client::new();
105127

106128
let request_body = json!({
@@ -109,7 +131,7 @@ impl PxServ {
109131

110132
let request = client
111133
.post("https://api.pxserv.net/database/removeData")
112-
.header("apikey", self.apikey.to_string())
134+
.header("apikey", &self.apikey)
113135
.json(&request_body)
114136
.send();
115137

@@ -118,8 +140,16 @@ impl PxServ {
118140
let response_text = response.text().unwrap();
119141
let json_response: Value = serde_json::from_str(&response_text).unwrap();
120142

121-
let status = json_response.get("status").unwrap().to_string();
122-
let message = json_response.get("message").unwrap().to_string();
143+
let status = json_response
144+
.get("status")
145+
.and_then(|s| s.as_i64())
146+
.expect("PxServ API ERROR")
147+
.to_string();
148+
let message = json_response
149+
.get("message")
150+
.and_then(|s| s.as_str())
151+
.expect("PxServ API ERROR")
152+
.to_string();
123153

124154
return PxServStatus {
125155
status,

0 commit comments

Comments
 (0)