Skip to content

Commit

Permalink
feat: Added TS example runner. (#29)
Browse files Browse the repository at this point in the history
* feat: Added TS example runner.

* fix: Created a env file before running the examples.

* chore: Updated the BASE_URL in dart client, Created another workflow to run the dart examples.

* fix: Created another organizations while testing.
  • Loading branch information
Mahmoud-Emad authored May 27, 2024
1 parent ce1a322 commit a99f686
Show file tree
Hide file tree
Showing 9 changed files with 104 additions and 31 deletions.
35 changes: 35 additions & 0 deletions .github/workflows/dart_examples.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Dart-Client run examples

on:
push:
branches:
[development, development_*]
pull_request:
branches:
[development, development_*]

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Set up Dart
uses: dart-lang/setup-dart@v1
with:
sdk: '3.1.4'

- name: Install dependencies
run: cd clients/dart/switchkeys && dart pub get

- name: Create .env file
run: |
cd clients/dart/switchkeys
touch .env
echo BASE_URL=${{ secrets.BASE_URL }} >> .env
cat .env
- name: Run Examples
run: cd clients/dart/switchkeys && dart example.dart
38 changes: 38 additions & 0 deletions .github/workflows/ts_examples.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: TS-Client run examples

on:
push:
branches:
[development, development_*]
pull_request:
branches:
[development, development_*]

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '18.18.0'

- name: Install dependencies
run: cd clients/typescript && yarn install

- name: Create .env file
run: |
cd clients/typescript
touch .env
echo BASE_URL=${{ secrets.BASE_URL }} >> .env
cat .env
- name: Compile TypeScript
run: cd clients/typescript && yarn build

- name: Run Examples
run: cd clients/typescript && npx ts-node ./example.ts
2 changes: 1 addition & 1 deletion clients/dart/switchkeys/lib/examples/environments.dart
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ Future<void> environmentsMain() async {
// ------------------------------------------------------------------------
// Create a new organization named "SwitchKeys".
var organization = await switchkeys.organizations.create(
name: "SwitchKeys",
name: "SwitchKeys10",
);
print("[+] Created organization name: ${organization.name}");

Expand Down
2 changes: 1 addition & 1 deletion clients/dart/switchkeys/lib/examples/organization.dart
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ Future<void> organizationsMain() async {
// ------------------------------------------------------------------------
// Create a new organization named "SwitchKeys".
var organization = await switchkeys.organizations.create(
name: "SwitchKeys",
name: "SwitchKeys2",
);
print("[+] Created organization name: ${organization.name}");

Expand Down
2 changes: 1 addition & 1 deletion clients/dart/switchkeys/lib/examples/projects.dart
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ Future<void> projectsMain() async {
// ------------------------------------------------------------------------
// Create a new organization named "SwitchKeys".
var organization = await switchkeys.organizations.create(
name: "SwitchKeys",
name: "SwitchKeys3",
);
print("[+] Created organization name: ${organization.name}");

Expand Down
50 changes: 25 additions & 25 deletions clients/dart/switchkeys/lib/src/api/routes.dart
Original file line number Diff line number Diff line change
Expand Up @@ -45,63 +45,63 @@ abstract class SwitchKeysRoutes {
switch (endpoint) {
// Auth, Users.
case EndPoints.signUp:
return "${baseUrl}auth/signup/";
return "${baseUrl}/api/auth/signup/";
case EndPoints.login:
return "${baseUrl}auth/login/";
return "${baseUrl}/api/auth/login/";
case EndPoints.users:
return "${baseUrl}auth/users/";
return "${baseUrl}/api/auth/users/";
case EndPoints.changePassword:
return "${baseUrl}auth/change-password/";
return "${baseUrl}/api/auth/change-password/";
case EndPoints.refreshToken:
return "${baseUrl}auth/token/refresh/";
return "${baseUrl}/api/auth/token/refresh/";
case EndPoints.usersId:
return "${baseUrl}users/${args![0]}/";
return "${baseUrl}/api/users/${args![0]}/";

// Organizations
case EndPoints.organizations:
return "${baseUrl}organizations/";
return "${baseUrl}/api/organizations/";
case EndPoints.organizationsId:
return "${baseUrl}organizations/${args![0]}/";
return "${baseUrl}/api/organizations/${args![0]}/";
case EndPoints.organizationsIdAddMember:
return "${baseUrl}organizations/${args![0]}/add-member/";
return "${baseUrl}/api/organizations/${args![0]}/add-member/";
case EndPoints.organizationsIdRemoveMember:
return "${baseUrl}organizations/${args![0]}/remove-member/";
return "${baseUrl}/api/organizations/${args![0]}/remove-member/";
case EndPoints.organizationsName:
return "${baseUrl}organizations/name/${args![0]}/";
return "${baseUrl}/api/organizations/name/${args![0]}/";
case EndPoints.organizationsIdAllProjects:
return "${baseUrl}organizations/${args![0]}/projects/";
return "${baseUrl}/api/organizations/${args![0]}/projects/";

// Environments
case EndPoints.environments:
return "${baseUrl}environments/";
return "${baseUrl}/api/environments/";
case EndPoints.environmentsKey:
return "${baseUrl}environments/key/${args![0]}/";
return "${baseUrl}/api/environments/key/${args![0]}/";
case EndPoints.environmentsKeyAddUser:
return "${baseUrl}environments/key/${args![0]}/add-user/";
return "${baseUrl}/api/environments/key/${args![0]}/add-user/";
case EndPoints.environmentsKeyRemoveUser:
return "${baseUrl}environments/key/${args![0]}/remove-user/";
return "${baseUrl}/api/environments/key/${args![0]}/remove-user/";
case EndPoints.environmentsId:
return "${baseUrl}environments/${args![0]}/";
return "${baseUrl}/api/environments/${args![0]}/";
case EndPoints.environmentAddFeature:
return "${baseUrl}environments/key/${args![0]}/features/";
return "${baseUrl}/api/environments/key/${args![0]}/features/";
case EndPoints.environmentUpdateFeature:
return "${baseUrl}environments/key/${args![0]}/features/update/${args[1]}/";
return "${baseUrl}/api/environments/key/${args![0]}/features/update/${args[1]}/";
case EndPoints.environmentDeleteFeature:
return "${baseUrl}environments/key/${args![0]}/features/delete/${args[1]}/";
return "${baseUrl}/api/environments/key/${args![0]}/features/delete/${args[1]}/";
case EndPoints.environmentUserAddFeature:
return "${baseUrl}environments/key/${args![0]}/users/${args[1]}/features/set/";
return "${baseUrl}/api/environments/key/${args![0]}/users/${args[1]}/features/set/";

// Projects
case EndPoints.projects:
return "${baseUrl}projects/";
return "${baseUrl}/api/projects/";
case EndPoints.projectsId:
return "${baseUrl}projects/${args![0]}/";
return "${baseUrl}/api/projects/${args![0]}/";

// Groups
case EndPoints.groups:
return "${baseUrl}groups/";
return "${baseUrl}/api/groups/";
case EndPoints.groupsId:
return "${baseUrl}groups/${args![0]}/";
return "${baseUrl}/api/groups/${args![0]}/";

default:
throw ArgumentError("Invalid endpoint: $endpoint");
Expand Down
2 changes: 1 addition & 1 deletion clients/typescript/examples/environments.example.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ export async function environmentExample() {
// --------------------------------------------------------------------------------------------------------------------
// Second, create a new organization.
const organization = await switchkeys.organizations.create({
name: "SwitchKeys",
name: "SwitchKeys7",
});

// --------------------------------------------------------------------------------------------------------------------
Expand Down
2 changes: 1 addition & 1 deletion clients/typescript/examples/organizations.example.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ export async function organizationExample() {
// --------------------------------------------------------------------------------------------------------------------
// Create a new organization named "SwitchKeys".
const organization = await switchkeys.organizations.create({
name: "SwitchKeys",
name: "SwitchKeys5",
});

console.log("[+] Created Organization:", organization);
Expand Down
2 changes: 1 addition & 1 deletion clients/typescript/examples/projects.example.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ export async function projectExample() {
// Second, create a new organization.
// PS: If you have a valid project ID, you can get it directly and skip this step.
const organization = await switchkeys.organizations.create({
name: "SwitchKeys",
name: "SwitchKeys4",
});

// Now you can create a project in the created organization.
Expand Down

0 comments on commit a99f686

Please sign in to comment.