https://github.com/byu-oit/byu-wso2-request
Utility for making a server to server request using wso2 authentication
https://github.com/byu-oit/byu-wso2-request
Last synced: 3 months ago
JSON representation
Utility for making a server to server request using wso2 authentication
- Host: GitHub
- URL: https://github.com/byu-oit/byu-wso2-request
- Owner: byu-oit
- License: apache-2.0
- Created: 2017-02-07T16:14:32.000Z (over 9 years ago)
- Default Branch: main
- Last Pushed: 2023-06-20T14:58:26.000Z (about 3 years ago)
- Last Synced: 2024-04-14T06:09:58.393Z (over 2 years ago)
- Language: JavaScript
- Homepage:
- Size: 219 KB
- Stars: 0
- Watchers: 32
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
#  byu-wso2-request
Utility for making a server to server request using wso2 authentication
[](https://codecov.io/gh/byu-oit/byu-wso2-request)
**Requires Node 10+**
#### Installation
```npm i --save byu-wso2-request```
#### Migration from v1 to v2.1+
* Update to Node 8 or above
* Use promises instead of callbacks for `request`
#### Migration from v2 to v3
* Update to Node 10 or above
* If you want the `statusCode` property added to responses, make the requests with the `resolveWithFullResponse` option set to `true` (See: [#30](https://github.com/byu-oit/byu-wso2-request/pull/30))
#### Usage
Set up with `setOauthSettings` and then make requests with `request`
Examples:
```js
const wso2 = require('byu-wso2-request')
(async () => {
// Will default to api.byu.edu if host is not passed in
const production = process.env.ENVIRONMENT_NAME === 'prd'
const host = production ? 'api.byu.edu' : 'api-sandbox.byu.edu'
// Alternatively, you can set the host in the environment variables
// process.env.WSO2_HOST = 'api.byu.edu'
// Do this once on startup
await wso2.setOauthSettings('myClientKey', 'myClientSecret', { host })
// After that, make all the requests you want
try {
// Simple GET request
const response1 = await wso2.request({ url: `https://${host}/echo/v1/echo/test` })
// Request using another method
const response2 = await wso2.request({ method: 'PUT', url: `https://${host}/byuapi/students/v2/123456789/enrolled_classes/Summer2019,BIO,100,001`, body: { credit_hours: 3 } })
// Request that passes along an original JWT
const response3 = await wso2.request({ url: `https://${host}/echo/v1/echo/test` }, 'some original jwt to pass along')
// Request where you want to know what status code came back (instead of just rejecting if it's not 2XX)
const response4 = await wso2.request({ url: `https://${host}/echo/v1/echo/test`, simple: false, resolveWithFullResponse: true })
} catch (e) {
console.error(e) // Handle errors
}
})
```
For more information on the options you can use for the `request` function, see [request-promise](https://www.npmjs.com/package/request-promise)