Skip to content

Commit

Permalink
Merge pull request #104 from c12i/chore/update-mpesa-variables
Browse files Browse the repository at this point in the history
chore: follow env variable naming as per Daraja API
  • Loading branch information
c12i authored Jan 28, 2024
2 parents 7f4ad7e + a9007e6 commit 8694aef
Show file tree
Hide file tree
Showing 22 changed files with 83 additions and 81 deletions.
4 changes: 2 additions & 2 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
CLIENT_KEY=""
CLIENT_SECRET=""
CONSUMER_KEY=""
CONSUMER_SECRET=""
8 changes: 4 additions & 4 deletions .github/workflows/general.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ jobs:
name: Test
runs-on: ubuntu-latest
env:
CLIENT_KEY: ${{ secrets.CLIENT_KEY }}
CLIENT_SECRET: ${{ secrets.CLIENT_SECRET }}
CONSUMER_KEY: ${{ secrets.CLIENT_KEY }}
CONSUMER_SECRET: ${{ secrets.CLIENT_SECRET }}
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
Expand Down Expand Up @@ -58,8 +58,8 @@ jobs:
name: Code coverage
runs-on: ubuntu-latest
env:
CLIENT_KEY: ${{ secrets.CLIENT_KEY }}
CLIENT_SECRET: ${{ secrets.CLIENT_SECRET }}
CONSUMER_KEY: ${{ secrets.CLIENT_KEY }}
CONSUMER_SECRET: ${{ secrets.CLIENT_SECRET }}
steps:
- name: Checkout repository
uses: actions/checkout@v2
Expand Down
20 changes: 10 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,8 @@ use mpesa::Mpesa;

### Creating a `Mpesa` client

You will first need to create an instance of the `Mpesa` instance (the client). You are required to provide a **CLIENT_KEY** and
**CLIENT_SECRET**. [Here](https://developer.safaricom.co.ke/test_credentials) is how you can get these credentials for the Safaricom sandbox
You will first need to create an instance of the `Mpesa` instance (the client). You are required to provide a **CONSUMER_KEY** and
**CONSUMER_SECRET**. [Here](https://developer.safaricom.co.ke/test_credentials) is how you can get these credentials for the Safaricom sandbox
environment. It's worth noting that these credentials are only valid in the sandbox environment. To go live and get production keys
read the docs [here](https://developer.safaricom.co.ke/docs?javascript#going-live).

Expand All @@ -53,8 +53,8 @@ async fn main() {
dotenvy::dotenv().ok();

let client = Mpesa::new(
dotenvy::var("CLIENT_KEY").unwrap(),
dotenvy::var("CLIENT_SECRET").unwrap(),
dotenvy::var("CONSUMER_KEY").unwrap(),
dotenvy::var("CONSUMER_SECRET").unwrap(),
Environment::Sandbox,
);

Expand All @@ -76,8 +76,8 @@ async fn main() -> Result<(), Box<dyn Error>> {
dotenvy::dotenv().ok();

let client = Mpesa::new(
dotenvy::var("CLIENT_KEY").unwrap(),
dotenvy::var("CLIENT_SECRET").unwrap(),
dotenvy::var("CONSUMER_KEY").unwrap(),
dotenvy::var("CONSUMER_SECRET").unwrap(),
Environment::from_str("sandbox")?, // or
// Environment::try_from("sandbox")?,
);
Expand Down Expand Up @@ -124,8 +124,8 @@ async fn main() {
dotenvy::dotenv().ok();

let client = Mpesa::new(
dotenvy::var("CLIENT_KEY").unwrap(),
dotenvy::var("CLIENT_SECRET").unwrap(),
dotenvy::var("CONSUMER_KEY").unwrap(),
dotenvy::var("CONSUMER_SECRET").unwrap(),
CustomEnvironment,
);
}
Expand All @@ -142,8 +142,8 @@ async fn main() {
dotenvy::dotenv().ok();

let client = Mpesa::new(
dotenvy::var("CLIENT_KEY").unwrap(),
dotenvy::var("CLIENT_SECRET").unwrap(),
dotenvy::var("CONSUMER_KEY").unwrap(),
dotenvy::var("CONSUMER_SECRET").unwrap(),
Environment::Sandbox,
);

Expand Down
4 changes: 2 additions & 2 deletions docs/client/account_balance.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ async fn main() {
dotenvy::dotenv().ok();

let client = Mpesa::new(
dotenvy::var("CLIENT_KEY").unwrap(),
dotenvy::var("CLIENT_SECRET").unwrap(),
dotenvy::var("CONSUMER_KEY").unwrap(),
dotenvy::var("CONSUMER_SECRET").unwrap(),
Environment::Sandbox,
);

Expand Down
4 changes: 2 additions & 2 deletions docs/client/b2b.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ async fn main() {
dotenvy::dotenv().ok();

let client = Mpesa::new(
dotenvy::var("CLIENT_KEY").unwrap(),
dotenvy::var("CLIENT_SECRET").unwrap(),
dotenvy::var("CONSUMER_KEY").unwrap(),
dotenvy::var("CONSUMER_SECRET").unwrap(),
Environment::Sandbox,
);

Expand Down
4 changes: 2 additions & 2 deletions docs/client/b2c.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ async fn main() {
dotenvy::dotenv().ok();

let client = Mpesa::new(
dotenvy::var("CLIENT_KEY").unwrap(),
dotenvy::var("CLIENT_SECRET").unwrap(),
dotenvy::var("CONSUMER_KEY").unwrap(),
dotenvy::var("CONSUMER_SECRET").unwrap(),
Environment::Sandbox,
);

Expand Down
4 changes: 2 additions & 2 deletions docs/client/bill_manager/bulk_invoice.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ async fn main() {
dotenvy::dotenv().ok();
let client = Mpesa::new(
dotenvy::var("CLIENT_KEY").unwrap(),
dotenvy::var("CLIENT_SECRET").unwrap(),
dotenvy::var("CONSUMER_KEY").unwrap(),
dotenvy::var("CONSUMER_SECRET").unwrap(),
Environment::Sandbox,
);
Expand Down
4 changes: 2 additions & 2 deletions docs/client/bill_manager/cancel_invoice.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ async fn main() {
dotenvy::dotenv().ok();
let client = Mpesa::new(
dotenvy::var("CLIENT_KEY").unwrap(),
dotenvy::var("CLIENT_SECRET").unwrap(),
dotenvy::var("CONSUMER_KEY").unwrap(),
dotenvy::var("CONSUMER_SECRET").unwrap(),
Environment::Sandbox,
);
Expand Down
4 changes: 2 additions & 2 deletions docs/client/bill_manager/onboard.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ async fn main() {
dotenvy::dotenv().ok();
let client = Mpesa::new(
dotenvy::var("CLIENT_KEY").unwrap(),
dotenvy::var("CLIENT_SECRET").unwrap(),
dotenvy::var("CONSUMER_KEY").unwrap(),
dotenvy::var("CONSUMER_SECRET").unwrap(),
Environment::Sandbox,
);
Expand Down
4 changes: 2 additions & 2 deletions docs/client/bill_manager/onboard_modify.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ async fn main() {
dotenvy::dotenv().ok();
let client = Mpesa::new(
dotenvy::var("CLIENT_KEY").unwrap(),
dotenvy::var("CLIENT_SECRET").unwrap(),
dotenvy::var("CONSUMER_KEY").unwrap(),
dotenvy::var("CONSUMER_SECRET").unwrap(),
Environment::Sandbox,
);
Expand Down
4 changes: 2 additions & 2 deletions docs/client/bill_manager/reconciliation.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ async fn main() {
dotenvy::dotenv().ok();
let client = Mpesa::new(
dotenvy::var("CLIENT_KEY").unwrap(),
dotenvy::var("CLIENT_SECRET").unwrap(),
dotenvy::var("CONSUMER_KEY").unwrap(),
dotenvy::var("CONSUMER_SECRET").unwrap(),
Environment::Sandbox,
);
Expand Down
4 changes: 2 additions & 2 deletions docs/client/bill_manager/single_invoice.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ async fn main() {
dotenvy::dotenv().ok();
let client = Mpesa::new(
dotenvy::var("CLIENT_KEY").unwrap(),
dotenvy::var("CLIENT_SECRET").unwrap(),
dotenvy::var("CONSUMER_KEY").unwrap(),
dotenvy::var("CONSUMER_SECRET").unwrap(),
Environment::Sandbox,
);
Expand Down
4 changes: 2 additions & 2 deletions docs/client/c2b_register.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ async fn main() {
dotenvy::dotenv().ok();
let client = Mpesa::new(
dotenvy::var("CLIENT_KEY").unwrap(),
dotenvy::var("CLIENT_SECRET").unwrap(),
dotenvy::var("CONSUMER_KEY").unwrap(),
dotenvy::var("CONSUMER_SECRET").unwrap(),
Environment::Sandbox,
);
Expand Down
4 changes: 2 additions & 2 deletions docs/client/c2b_simulate.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ async fn main() {
dotenvy::dotenv().ok();

let client = Mpesa::new(
dotenvy::var("CLIENT_KEY").unwrap(),
dotenvy::var("CLIENT_SECRET").unwrap(),
dotenvy::var("CONSUMER_KEY").unwrap(),
dotenvy::var("CONSUMER_SECRET").unwrap(),
Environment::Sandbox,
);

Expand Down
4 changes: 2 additions & 2 deletions docs/client/dynamic_qr.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ async fn main() {
dotenvy::dotenv().ok();

let client = Mpesa::new(
dotenvy::var("CLIENT_KEY").unwrap(),
dotenvy::var("CLIENT_SECRET").unwrap(),
dotenvy::var("CONSUMER_KEY").unwrap(),
dotenvy::var("CONSUMER_SECRET").unwrap(),
Environment::Sandbox,
);

Expand Down
4 changes: 2 additions & 2 deletions docs/client/express_request.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ async fn main() -> Result<(), Box<dyn std::error::Error>>{
dotenvy::dotenv().ok();
let client = Mpesa::new(
dotenvy::var("CLIENT_KEY").unwrap(),
dotenvy::var("CLIENT_SECRET").unwrap(),
dotenvy::var("CONSUMER_KEY").unwrap(),
dotenvy::var("CONSUMER_SECRET").unwrap(),
Environment::Sandbox,
);
Expand Down
4 changes: 2 additions & 2 deletions docs/client/transaction_reversal.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
dotenvy::dotenv().ok();

let client = Mpesa::new(
dotenvy::var("CLIENT_KEY").unwrap(),
dotenvy::var("CLIENT_SECRET").unwrap(),
dotenvy::var("CONSUMER_KEY").unwrap(),
dotenvy::var("CONSUMER_SECRET").unwrap(),
Environment::Sandbox,
);

Expand Down
4 changes: 2 additions & 2 deletions docs/client/transaction_status.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ async fn main() {
dotenvy::dotenv().ok();

let client = Mpesa::new(
dotenvy::var("CLIENT_KEY").unwrap(),
dotenvy::var("CLIENT_SECRET").unwrap(),
dotenvy::var("CONSUMER_KEY").unwrap(),
dotenvy::var("CONSUMER_SECRET").unwrap(),
Environment::Sandbox,
);

Expand Down
8 changes: 5 additions & 3 deletions src/auth.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,15 @@ const AUTHENTICATION_URL: &str = "/oauth/v1/generate?grant_type=client_credentia
time = 3600,
key = "String",
result = true,
convert = r#"{ format!("{}", client.client_key()) }"#
convert = r#"{ format!("{}", client.consumer_key()) }"#
)]
pub(crate) async fn auth(client: &Mpesa) -> MpesaResult<String> {
let url = format!("{}{}", client.base_url, AUTHENTICATION_URL);

let response = client
.http_client
.get(&url)
.basic_auth(client.client_key(), Some(&client.client_secret()))
.basic_auth(client.consumer_key(), Some(&client.consumer_secret()))
.send()
.await?;

Expand Down Expand Up @@ -111,7 +111,9 @@ mod tests {

let mut cache = AUTH.lock().await;

assert!(cache.cache_get(&client.client_key().to_string()).is_some());
assert!(cache
.cache_get(&client.consumer_key().to_string())
.is_some());
assert_eq!(cache.cache_hits().unwrap(), 1);
assert_eq!(cache.cache_capacity().unwrap(), 1);
}
Expand Down
Loading

0 comments on commit 8694aef

Please sign in to comment.