Socket
Socket
Sign inDemoInstall

@availity/api-core

Package Overview
Dependencies
2
Maintainers
14
Versions
118
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 6.5.2 to 6.6.0

18

CHANGELOG.md

@@ -6,2 +6,20 @@ # Change Log

# [6.6.0](https://github.com/Availity/sdk-js/compare/@availity/api-core@6.5.2...@availity/api-core@6.6.0) (2020-06-08)
### Bug Fixes
* **api-core:** fix org filtering when permission/resource not returned ([7b08f09](https://github.com/Availity/sdk-js/commit/7b08f09fcb7545818a6d3aaacf9c6eabb3969ba7))
* **api-core:** organization filtering fix for resource OR ([cb16c6a](https://github.com/Availity/sdk-js/commit/cb16c6a36fbf7d653c9ff70a0555981001c21606))
* **api-core:** organization permissions fix equal check, allow number ([6fc93c1](https://github.com/Availity/sdk-js/commit/6fc93c114523350cad0d37d8167b5047707c33a9))
### Features
* **api-core:** add permission AND/OR logic to organization filter ([90acf02](https://github.com/Availity/sdk-js/commit/90acf029028413c9fb98443d136abb795295eb5c))
## [6.5.2](https://github.com/Availity/sdk-js/compare/@availity/api-core@6.5.1...@availity/api-core@6.5.2) (2020-06-04)

@@ -8,0 +26,0 @@

77

lib/resources/organizations.js

@@ -95,3 +95,3 @@ "use strict";

var _postGet = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(data, config, additionalPostGetArgs) {
var permissionIds, dataTemp, _yield$_get$call, organizationsData;
var permissionIds, dataTemp, _yield$_get$call, organizationsData, organizations, limit, offset, totalCount, authorizedOrgs, authorizedFilteredOrgs;

@@ -103,3 +103,3 @@ return _regenerator["default"].wrap(function _callee$(_context) {

if (!additionalPostGetArgs) {
_context.next = 8;
_context.next = 13;
break;

@@ -128,8 +128,29 @@ }

organizationsData = _yield$_get$call.data;
return _context.abrupt("return", this.getFilteredOrganizations(organizationsData, additionalPostGetArgs, data));
organizations = organizationsData.organizations, limit = organizationsData.limit, offset = organizationsData.offset, totalCount = organizationsData.totalCount;
_context.next = 10;
return this.getFilteredOrganizations(additionalPostGetArgs, data);
case 8:
case 10:
authorizedOrgs = _context.sent;
// avUserPermissions call doesn't return much useful organization data
// but we can match valid ids to useful data returned from avOrganizations
authorizedFilteredOrgs = organizations.filter(function (org) {
return authorizedOrgs.some(function (authOrg) {
return authOrg.id === org.id;
});
}); // Transform back into data object that ResourceSelect can use and paginate
return _context.abrupt("return", {
data: {
authorizedFilteredOrgs: authorizedFilteredOrgs,
totalCount: totalCount,
limit: limit,
offset: offset
}
});
case 13:
return _context.abrupt("return", (0, _get2["default"])((0, _getPrototypeOf2["default"])(AvOrganizations.prototype), "postGet", this).call(this, data, config));
case 9:
case 14:
case "end":

@@ -151,6 +172,6 @@ return _context.stop();

value: function () {
var _getFilteredOrganizations = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(organizationsData, additionalPostGetArgs, data) {
var _getFilteredOrganizations = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(additionalPostGetArgs, data) {
var _this3 = this;
var _additionalPostGetArg, resourceIds, permissionIds, _data, permissionId, region, organizations, orgLimit, orgOffset, totalOrgCount, permissionIdsToUse, resourceIdsToUse, resourceIdsArray, permissionIdsOR, _yield$this$avUserPer, userPermissions, authorizedOrgs, authorizedFilteredOrgs;
var _additionalPostGetArg, resourceIds, permissionIds, _data, permissionId, region, permissionIdsToUse, resourceIdsToUse, resourceIdsArray, permissionIdsOR, _yield$this$avUserPer, userPermissions, authorizedOrgs;

@@ -169,3 +190,2 @@ return _regenerator["default"].wrap(function _callee2$(_context2) {

_data = data, permissionId = _data.permissionId, region = _data.region;
organizations = organizationsData.organizations, orgLimit = organizationsData.limit, orgOffset = organizationsData.offset, totalOrgCount = organizationsData.totalCount;
permissionIdsToUse = permissionIds || permissionId;

@@ -179,7 +199,7 @@ permissionIdsToUse = this.sanitizeIds(permissionIdsToUse);

if (!(region !== this.previousRegionId || !this.arePermissionsEqual(permissionIdsOR))) {
_context2.next = 21;
_context2.next = 20;
break;
}
_context2.next = 12;
_context2.next = 11;
return this.avUserPermissions.postGet({

@@ -190,3 +210,3 @@ permissionId: permissionIdsOR,

case 12:
case 11:
_yield$this$avUserPer = _context2.sent;

@@ -196,3 +216,3 @@ userPermissions = _yield$this$avUserPer.data.axiUserPermissions;

if (!userPermissions) {
_context2.next = 20;
_context2.next = 19;
break;

@@ -207,9 +227,9 @@ }

this.previousRegionId = region;
_context2.next = 21;
_context2.next = 20;
break;
case 20:
case 19:
throw new Error('avUserPermissions call failed');
case 21:
case 20:
// loop thru the permissionId list of ORs, finding and adding matching orgs in the userPermissions. ANDs are beneath/within the ORs

@@ -300,22 +320,13 @@ authorizedOrgs = permissionIdsOR.reduce(function (accum, permissionIdOR) {

}, {});
} // avUserPermissions call doesn't return much useful organization data
// but we can match valid ids to useful data returned from avOrganizations
}
return _context2.abrupt("return", Object.keys(authorizedOrgs).reduce(function (accum, orgId) {
if (authorizedOrgs[orgId].match) {
accum.push(authorizedOrgs[orgId]);
}
authorizedFilteredOrgs = organizations.filter(function (org) {
return Object.keys(authorizedOrgs).some(function (orgId) {
return authorizedOrgs[orgId] && authorizedOrgs[orgId].match && orgId === org.id;
});
}); // Transform back into data object that ResourceSelect can use and paginate
return accum;
}, []));
return _context2.abrupt("return", {
data: {
authorizedFilteredOrgs: authorizedFilteredOrgs,
totalCount: totalOrgCount,
limit: orgLimit,
offset: orgOffset
}
});
case 25:
case 23:
case "end":

@@ -328,3 +339,3 @@ return _context2.stop();

function getFilteredOrganizations(_x4, _x5, _x6) {
function getFilteredOrganizations(_x4, _x5) {
return _getFilteredOrganizations.apply(this, arguments);

@@ -331,0 +342,0 @@ }

{
"name": "@availity/api-core",
"version": "6.5.2",
"version": "6.6.0",
"description": "Base API definitions for the Availity REST API",

@@ -24,3 +24,3 @@ "keywords": [

},
"gitHead": "2c9b55b6b97f95281933da861ad3c537ec5ece49"
"gitHead": "4925f8f73f30ac3f323d20e3a329450f6d98ae9e"
}

@@ -61,8 +61,24 @@ import qs from 'qs';

const { data: organizationsData } = await super.postGet(data, config);
const { organizations, limit, offset, totalCount } = organizationsData;
return this.getFilteredOrganizations(
organizationsData,
const authorizedOrgs = await this.getFilteredOrganizations(
additionalPostGetArgs,
data
);
// avUserPermissions call doesn't return much useful organization data
// but we can match valid ids to useful data returned from avOrganizations
const authorizedFilteredOrgs = organizations.filter(org =>
authorizedOrgs.some(authOrg => authOrg.id === org.id)
);
// Transform back into data object that ResourceSelect can use and paginate
return {
data: {
authorizedFilteredOrgs,
totalCount,
limit,
offset,
},
};
}

@@ -74,7 +90,3 @@

async getFilteredOrganizations(
organizationsData,
additionalPostGetArgs,
data
) {
async getFilteredOrganizations(additionalPostGetArgs, data) {
// for filtered orgs, can pass both permissions and resources in postGetArgs, and we will use the permissionIds here over the data.permissionId

@@ -86,8 +98,2 @@ const { resourceIds = [], permissionIds } = additionalPostGetArgs;

const { permissionId, region } = data;
const {
organizations,
limit: orgLimit,
offset: orgOffset,
totalCount: totalOrgCount,
} = organizationsData;

@@ -228,22 +234,8 @@ let permissionIdsToUse = permissionIds || permissionId;

// avUserPermissions call doesn't return much useful organization data
// but we can match valid ids to useful data returned from avOrganizations
const authorizedFilteredOrgs = organizations.filter(org =>
Object.keys(authorizedOrgs).some(
orgId =>
authorizedOrgs[orgId] &&
authorizedOrgs[orgId].match &&
orgId === org.id
)
);
// Transform back into data object that ResourceSelect can use and paginate
return {
data: {
authorizedFilteredOrgs,
totalCount: totalOrgCount,
limit: orgLimit,
offset: orgOffset,
},
};
return Object.keys(authorizedOrgs).reduce((accum, orgId) => {
if (authorizedOrgs[orgId].match) {
accum.push(authorizedOrgs[orgId]);
}
return accum;
}, []);
}

@@ -250,0 +242,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc