From a99f6863e8c014c7d2f7f8c6f6452722f84ae4c5 Mon Sep 17 00:00:00 2001 From: Thunder Date: Mon, 27 May 2024 15:06:27 +0300 Subject: [PATCH] feat: Added TS example runner. (#29) * 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. --- .github/workflows/dart_examples.yml | 35 +++++++++++++ .github/workflows/ts_examples.yml | 38 ++++++++++++++ .../switchkeys/lib/examples/environments.dart | 2 +- .../switchkeys/lib/examples/organization.dart | 2 +- .../switchkeys/lib/examples/projects.dart | 2 +- .../dart/switchkeys/lib/src/api/routes.dart | 50 +++++++++---------- .../examples/environments.example.ts | 2 +- .../examples/organizations.example.ts | 2 +- .../typescript/examples/projects.example.ts | 2 +- 9 files changed, 104 insertions(+), 31 deletions(-) create mode 100644 .github/workflows/dart_examples.yml create mode 100644 .github/workflows/ts_examples.yml diff --git a/.github/workflows/dart_examples.yml b/.github/workflows/dart_examples.yml new file mode 100644 index 0000000..f1203b2 --- /dev/null +++ b/.github/workflows/dart_examples.yml @@ -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 diff --git a/.github/workflows/ts_examples.yml b/.github/workflows/ts_examples.yml new file mode 100644 index 0000000..e68fc38 --- /dev/null +++ b/.github/workflows/ts_examples.yml @@ -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 diff --git a/clients/dart/switchkeys/lib/examples/environments.dart b/clients/dart/switchkeys/lib/examples/environments.dart index 4d31a91..6c23920 100644 --- a/clients/dart/switchkeys/lib/examples/environments.dart +++ b/clients/dart/switchkeys/lib/examples/environments.dart @@ -38,7 +38,7 @@ Future environmentsMain() async { // ------------------------------------------------------------------------ // Create a new organization named "SwitchKeys". var organization = await switchkeys.organizations.create( - name: "SwitchKeys", + name: "SwitchKeys10", ); print("[+] Created organization name: ${organization.name}"); diff --git a/clients/dart/switchkeys/lib/examples/organization.dart b/clients/dart/switchkeys/lib/examples/organization.dart index 116bb20..bf870aa 100644 --- a/clients/dart/switchkeys/lib/examples/organization.dart +++ b/clients/dart/switchkeys/lib/examples/organization.dart @@ -36,7 +36,7 @@ Future organizationsMain() async { // ------------------------------------------------------------------------ // Create a new organization named "SwitchKeys". var organization = await switchkeys.organizations.create( - name: "SwitchKeys", + name: "SwitchKeys2", ); print("[+] Created organization name: ${organization.name}"); diff --git a/clients/dart/switchkeys/lib/examples/projects.dart b/clients/dart/switchkeys/lib/examples/projects.dart index c1c6f60..6e30675 100644 --- a/clients/dart/switchkeys/lib/examples/projects.dart +++ b/clients/dart/switchkeys/lib/examples/projects.dart @@ -37,7 +37,7 @@ Future projectsMain() async { // ------------------------------------------------------------------------ // Create a new organization named "SwitchKeys". var organization = await switchkeys.organizations.create( - name: "SwitchKeys", + name: "SwitchKeys3", ); print("[+] Created organization name: ${organization.name}"); diff --git a/clients/dart/switchkeys/lib/src/api/routes.dart b/clients/dart/switchkeys/lib/src/api/routes.dart index 670cdec..f657de8 100644 --- a/clients/dart/switchkeys/lib/src/api/routes.dart +++ b/clients/dart/switchkeys/lib/src/api/routes.dart @@ -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"); diff --git a/clients/typescript/examples/environments.example.ts b/clients/typescript/examples/environments.example.ts index 4fe92c3..a0e506e 100644 --- a/clients/typescript/examples/environments.example.ts +++ b/clients/typescript/examples/environments.example.ts @@ -48,7 +48,7 @@ export async function environmentExample() { // -------------------------------------------------------------------------------------------------------------------- // Second, create a new organization. const organization = await switchkeys.organizations.create({ - name: "SwitchKeys", + name: "SwitchKeys7", }); // -------------------------------------------------------------------------------------------------------------------- diff --git a/clients/typescript/examples/organizations.example.ts b/clients/typescript/examples/organizations.example.ts index 2f5c09b..bcd3347 100644 --- a/clients/typescript/examples/organizations.example.ts +++ b/clients/typescript/examples/organizations.example.ts @@ -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); diff --git a/clients/typescript/examples/projects.example.ts b/clients/typescript/examples/projects.example.ts index f2fb4e0..e3cb4dc 100644 --- a/clients/typescript/examples/projects.example.ts +++ b/clients/typescript/examples/projects.example.ts @@ -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.