Huge news!Announcing our $20M Series A led by Andreessen Horowitz.Learn more
Socket
Socket
Log inDemoInstall

btrz-api-client

Package Overview
Dependencies
10
Maintainers
1
Versions
204
Issues
File Explorer

Advanced tools

Install Socket

Protect your apps from supply chain attacks

Install

btrz-api-client

Api client for Betterez endpoints

    5.79.0
    GitHub
    npm

Version published
Maintainers
1
Weekly downloads
687
increased by24.68%

Weekly downloads

Readme

Source

For every new endpoint

  • This 4 methods should always be called the same
function all({ token, query, [jwtToken] }): Returns all resources function get({ token, id.[jwtToken] }): Returns one resource function create({jwtToken, token, resource }): Creates a new resource function update({jwtToken, token, id, resource}): Updates a resource with the given id function remove({jwtToken token, id }): Remove the resource

jwtToken Is only required in certain endpoints, check the endpoint documentation.

How to use it

  • Using defaults
const api = require("btrz-api-client").createApiClient({ baseURL: `http://localhost:${port}` }); api.inventory.products.all({ token, query }) => Promise
  • You can still perform custom requests
const api = require("btrz-api-client").createApiClient({ baseURL: 'http://localhost:8080', }); api._cleanClient({ url: `/inventory/products`, headers: { 'x-api-key': token }, params: { isParcel: true } }) => Promise
  • Ready for production

This client uses production defaults if none provided, check /src/productionDefaults.js

const api = require("btrz-api-client").createApiClient(); api.inventory.products.all({ token, query }) //you're now talking to production!
Performing internal service-to-service calls

Provide an object that generates internal auth tokens when you create the API Client:

const InternalAuthTokenProvider = require("btrz-auth-api-key").InternalAuthTokenProvider, tokenProviderOptions = { internalAuthTokenSigningSecrets: { main: "<some_secret_signing_key>" } }, internalAuthTokenProvider = new InternalAuthTokenProvider(tokenProviderOptions), ApiClient = require("btrz-api-client"), apiClient = ApiClient.createApiClient({ internalAuthTokenProvider, // ... plus any other options });

Then, to perform a service-to-service call with an auto-generated token:

const apiRequest = apiClient.operations.manifest.getOrCreate({ token: <user_api_key>, jwtToken: "internal_auth_token", // Use this exact string query: { ... } });

Unit Test

npm test

Test integration

API_TOKEN=<some token> npm run test:integration

You can specify the different ports for every endpoint using /test-integration/ports.js

Folders structure

- src - enpoints - inventory - products.js - test - endpoints - inventory - products.test.js - test-integration - endpoints - inventory - products.test.js

Push a new version

Run

npm version [major || minor || patch]

This will increment the version number according to your selection (major, minor or patch) and push a new TAG. There's no need to release a new version in the github UI.

FAQs

Last updated on 27 Mar 2023

Did you know?

Socket installs a GitHub app to automatically flag issues on every pull request and report the health of your dependencies. Find out what is inside your node modules and prevent malicious activity before you update the dependencies.

Install
SocketSocket SOC 2 Logo

Product

  • Package Issues
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc