6.0.28 • Published 11 months ago

@dta5/npm-dta-sdk v6.0.28

Weekly downloads
-
License
UNLICENSED
Repository
gitlab
Last release
11 months ago

npm-dmx-sdk

Package to handle shared microservice behaviors.

A simple example:

// you should specify DMX_SERVICE env (ex. `Auctions`) which is microservice sender name
const { Authentication } = require('@dmx/npm-dmx-sdk');

const { status, body } = await Authentication.get({
  path: '/users/user-1',
  jwt: { user: { _id: 'user-1', username: 'foo@bar.com' }, dealerId: 'dealer-1' },
});

If NODE_ENV or DMX_SERVICE are not set in process.env, requiring the module will return a function which accepts a configuration object:

const envConfig = { NODE_ENV: 'development-one', DMX_SERVICE: 'Mobile' };
const { Authentication } = require('@dmx/npm-dmx-sdk')(envConfig);

const { status, body } = await Authentication.get({
  path: '/users/user-1',
  jwt: { user: { _id: 'user-1', username: 'foo@bar.com' }, dealerId: 'dealer-1' },
});

A sample returned value:

Promise.resolve({
  status: 200,
  body: {
    foo: 'bar',
  },
  text: '{"foo":"bar"}',
  headers: { // only the custom explicit headers, not the default ones
    'x-total-count': '456',
  },
});

A sample returned value for 4.. and 5.. responses:

Promise.reject({
  response:
    status: 400,
    text: 'invalid email',
    headers: {}
  }
});

Supported methods:

  • get
  • post
  • put
  • patch
  • delete

Supported microservices:

  • ForestAdmin
  • AdminDashboardServer
  • AdminDashboardClient
  • Appraisals
  • Auctions
  • Authentication
  • DashboardServer
  • DashboardClient
  • Gateway (some of microservices connect via gateway so use Gateway explicitly only if a microservice connects without gateway)
  • Grades
  • Ingestion
  • Inventory
  • MarketData
  • Media
  • Notifications
  • NotificationsNew
  • Payments
  • Reports
  • Scheduling
  • VehicleInfo
  • Webhooks
  • WebSockets

Fields which can be passed into the methods:

  • path: String - path including the parameters but excluding the query string
  • query: Object - query string
  • payload: Object (only in post, put and patch) - request body
  • headers: Object - custom request headers
  • jwt: Object|String - decoded (if an Object) or encoded (if a String) JSON Web Token
  • throttle: Throttle<active: Boolean, rate: Number, ratePer: Number, concurrent: Number> - instance of Throttle class (const { Throttle } = require('@dmx/npm-dmx-sdk')) configured in format specified in https://github.com/leviwheatcroft/superagent-throttle
  • responseType: String - according to https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/responseType
  • shouldHandle502error: Boolean - get always handles 502 error (repeats max 5 times) but for other methods 502 is handled only when shouldHandle502error is set to true, it should be used carefully, only for idempotent endpoints (calling multiple times should result in the same data stored in db as calling a single time except of logged info)

If jwt is not specified, a default JWT is created based on the DMX_SERVICE env.

6.0.27

1 year ago

6.0.26

1 year ago

6.0.25

1 year ago

6.0.28

11 months ago

6.0.23

2 years ago

6.0.22

2 years ago