@bigbinary/neeto-access-control-frontend 1.3.29 → 1.3.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,154 @@
1
+ 'use strict';
2
+
3
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
5
+ var reactQuery = require('@tanstack/react-query');
6
+ var constants = require('@bigbinary/neeto-commons-frontend/constants');
7
+ var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
8
+ var axios = require('axios');
9
+ var ramda = require('ramda');
10
+
11
+ var ACCESS_CONTROL_BASE_PATH = "/secure/api/v1";
12
+
13
+ var invitationsPath = "".concat(ACCESS_CONTROL_BASE_PATH, "/configuration/invitations");
14
+ var list = function list(params) {
15
+ return axios.get(invitationsPath, {
16
+ params: params
17
+ });
18
+ };
19
+ var bulkCreate = function bulkCreate(_ref) {
20
+ var configurationId = _ref.configurationId,
21
+ payload = _ref.payload;
22
+ return axios.post("".concat(invitationsPath, "/bulk_create"), payload, {
23
+ params: {
24
+ neetoAccessControlConfigurationId: configurationId
25
+ }
26
+ });
27
+ };
28
+ var bulkDestroy = function bulkDestroy(_ref2) {
29
+ var configurationId = _ref2.configurationId,
30
+ payload = _ref2.payload;
31
+ return axios.post("".concat(invitationsPath, "/bulk_destroy"), payload, {
32
+ params: {
33
+ neetoAccessControlConfigurationId: configurationId
34
+ }
35
+ });
36
+ };
37
+ var invitationsApi = {
38
+ list: list,
39
+ bulkDestroy: bulkDestroy,
40
+ bulkCreate: bulkCreate
41
+ };
42
+
43
+ var QUERY_KEYS = {
44
+ ACCESS_CONTROL_CONFIGURATION: "access-control-configuration",
45
+ ACCESS_CONTROL_CONFIGURATION_INVITATIONS: "access-control-configuration-invitations"
46
+ };
47
+
48
+ var _excluded = ["ownerId", "ownerType"];
49
+ function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
50
+ function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
51
+ var ACCESS_CONTROL_CONFIGURATION_INVITATIONS$1 = QUERY_KEYS.ACCESS_CONTROL_CONFIGURATION_INVITATIONS;
52
+ var useListInvitations = function useListInvitations(_ref, options) {
53
+ var ownerId = _ref.ownerId,
54
+ ownerType = _ref.ownerType,
55
+ otherParams = _objectWithoutProperties(_ref, _excluded);
56
+ return reactQuery.useQuery(_objectSpread$1({
57
+ queryKey: [ACCESS_CONTROL_CONFIGURATION_INVITATIONS$1, ownerType, ownerId, otherParams],
58
+ queryFn: function queryFn() {
59
+ return invitationsApi.list(otherParams);
60
+ },
61
+ staleTime: constants.DEFAULT_STALE_TIME
62
+ }, options));
63
+ };
64
+ var useBulkCreateInvitations = function useBulkCreateInvitations(_ref2, options) {
65
+ var configurationId = _ref2.configurationId,
66
+ ownerId = _ref2.ownerId,
67
+ ownerType = _ref2.ownerType;
68
+ return reactUtils.useMutationWithInvalidation(function (payload) {
69
+ return invitationsApi.bulkCreate({
70
+ configurationId: configurationId,
71
+ payload: payload
72
+ });
73
+ }, _objectSpread$1({
74
+ keysToInvalidate: [[ACCESS_CONTROL_CONFIGURATION_INVITATIONS$1, ownerType, ownerId]]
75
+ }, options));
76
+ };
77
+ var useBulkDestroyInvitations = function useBulkDestroyInvitations(_ref3, options) {
78
+ var configurationId = _ref3.configurationId,
79
+ ownerId = _ref3.ownerId,
80
+ ownerType = _ref3.ownerType;
81
+ return reactUtils.useMutationWithInvalidation(function (payload) {
82
+ return invitationsApi.bulkDestroy({
83
+ configurationId: configurationId,
84
+ payload: payload
85
+ });
86
+ }, _objectSpread$1({
87
+ keysToInvalidate: [[ACCESS_CONTROL_CONFIGURATION_INVITATIONS$1, ownerType, ownerId]]
88
+ }, options));
89
+ };
90
+
91
+ var configurationPath = "".concat(ACCESS_CONTROL_BASE_PATH, "/configuration");
92
+ var show = function show(params) {
93
+ return axios.get(configurationPath, {
94
+ params: params
95
+ });
96
+ };
97
+ var update = function update(_ref) {
98
+ var ownerId = _ref.ownerId,
99
+ ownerType = _ref.ownerType,
100
+ payload = _ref.payload;
101
+ return axios.put(configurationPath, {
102
+ configuration: payload
103
+ }, {
104
+ params: {
105
+ ownerId: ownerId,
106
+ ownerType: ownerType
107
+ }
108
+ });
109
+ };
110
+ var configurationsApi = {
111
+ show: show,
112
+ update: update
113
+ };
114
+
115
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
116
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
117
+ var ACCESS_CONTROL_CONFIGURATION = QUERY_KEYS.ACCESS_CONTROL_CONFIGURATION,
118
+ ACCESS_CONTROL_CONFIGURATION_INVITATIONS = QUERY_KEYS.ACCESS_CONTROL_CONFIGURATION_INVITATIONS;
119
+ var useShowConfiguration = function useShowConfiguration(_ref) {
120
+ var ownerId = _ref.ownerId,
121
+ ownerType = _ref.ownerType;
122
+ return reactQuery.useQuery({
123
+ queryKey: [ACCESS_CONTROL_CONFIGURATION, ownerType, ownerId],
124
+ queryFn: function queryFn() {
125
+ return configurationsApi.show({
126
+ ownerType: ownerType,
127
+ ownerId: ownerId
128
+ });
129
+ },
130
+ select: ramda.prop("configuration"),
131
+ staleTime: constants.DEFAULT_STALE_TIME
132
+ });
133
+ };
134
+ var useUpdateConfiguration = function useUpdateConfiguration(_ref2, options) {
135
+ var ownerId = _ref2.ownerId,
136
+ ownerType = _ref2.ownerType;
137
+ return reactUtils.useMutationWithInvalidation(function (payload) {
138
+ return configurationsApi.update({
139
+ ownerId: ownerId,
140
+ ownerType: ownerType,
141
+ payload: payload
142
+ });
143
+ }, _objectSpread({
144
+ keysToInvalidate: [[ACCESS_CONTROL_CONFIGURATION, ownerType, ownerId], [ACCESS_CONTROL_CONFIGURATION_INVITATIONS, ownerType, ownerId]]
145
+ }, options));
146
+ };
147
+
148
+ exports.QUERY_KEYS = QUERY_KEYS;
149
+ exports.useBulkCreateInvitations = useBulkCreateInvitations;
150
+ exports.useBulkDestroyInvitations = useBulkDestroyInvitations;
151
+ exports.useListInvitations = useListInvitations;
152
+ exports.useShowConfiguration = useShowConfiguration;
153
+ exports.useUpdateConfiguration = useUpdateConfiguration;
154
+ //# sourceMappingURL=useConfigurationsApi-DkMeZA_t.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useConfigurationsApi-DkMeZA_t.js","sources":["../app/javascript/src/constants/index.js","../app/javascript/src/apis/invitations.js","../app/javascript/src/constants/query.js","../app/javascript/src/hooks/reactQuery/useInvitationsApi.js","../app/javascript/src/apis/configurations.js","../app/javascript/src/hooks/reactQuery/useConfigurationsApi.js"],"sourcesContent":["export const ACCESS_CONTROL_BASE_PATH = \"/secure/api/v1\";\n","import axios from \"axios\";\n\nimport { ACCESS_CONTROL_BASE_PATH } from \"src/constants\";\n\nconst invitationsPath = `${ACCESS_CONTROL_BASE_PATH}/configuration/invitations`;\n\nconst list = params => axios.get(invitationsPath, { params });\n\nconst bulkCreate = ({ configurationId, payload }) =>\n axios.post(`${invitationsPath}/bulk_create`, payload, {\n params: { neetoAccessControlConfigurationId: configurationId },\n });\n\nconst bulkDestroy = ({ configurationId, payload }) =>\n axios.post(`${invitationsPath}/bulk_destroy`, payload, {\n params: { neetoAccessControlConfigurationId: configurationId },\n });\n\nconst invitationsApi = { list, bulkDestroy, bulkCreate };\n\nexport default invitationsApi;\n","export const QUERY_KEYS = {\n ACCESS_CONTROL_CONFIGURATION: \"access-control-configuration\",\n ACCESS_CONTROL_CONFIGURATION_INVITATIONS:\n \"access-control-configuration-invitations\",\n};\n","import { useQuery } from \"@tanstack/react-query\";\nimport { DEFAULT_STALE_TIME } from \"neetocommons/constants\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\n\nimport invitationsApi from \"apis/invitations\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nconst { ACCESS_CONTROL_CONFIGURATION_INVITATIONS } = QUERY_KEYS;\n\nexport const useListInvitations = (\n { ownerId, ownerType, ...otherParams },\n options\n) =>\n useQuery({\n queryKey: [\n ACCESS_CONTROL_CONFIGURATION_INVITATIONS,\n ownerType,\n ownerId,\n otherParams,\n ],\n queryFn: () => invitationsApi.list(otherParams),\n staleTime: DEFAULT_STALE_TIME,\n ...options,\n });\n\nexport const useBulkCreateInvitations = (\n { configurationId, ownerId, ownerType },\n options\n) =>\n useMutationWithInvalidation(\n payload => invitationsApi.bulkCreate({ configurationId, payload }),\n {\n keysToInvalidate: [\n [ACCESS_CONTROL_CONFIGURATION_INVITATIONS, ownerType, ownerId],\n ],\n ...options,\n }\n );\n\nexport const useBulkDestroyInvitations = (\n { configurationId, ownerId, ownerType },\n options\n) =>\n useMutationWithInvalidation(\n payload => invitationsApi.bulkDestroy({ configurationId, payload }),\n {\n keysToInvalidate: [\n [ACCESS_CONTROL_CONFIGURATION_INVITATIONS, ownerType, ownerId],\n ],\n ...options,\n }\n );\n","import axios from \"axios\";\n\nimport { ACCESS_CONTROL_BASE_PATH } from \"src/constants\";\n\nconst configurationPath = `${ACCESS_CONTROL_BASE_PATH}/configuration`;\n\nconst show = params => axios.get(configurationPath, { params });\n\nconst update = ({ ownerId, ownerType, payload }) =>\n axios.put(\n configurationPath,\n { configuration: payload },\n { params: { ownerId, ownerType } }\n );\n\nconst configurationsApi = { show, update };\n\nexport default configurationsApi;\n","import { useQuery } from \"@tanstack/react-query\";\nimport { DEFAULT_STALE_TIME } from \"neetocommons/constants\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\nimport { prop } from \"ramda\";\n\nimport configurationsApi from \"apis/configurations\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nconst {\n ACCESS_CONTROL_CONFIGURATION,\n ACCESS_CONTROL_CONFIGURATION_INVITATIONS,\n} = QUERY_KEYS;\n\nexport const useShowConfiguration = ({ ownerId, ownerType }) =>\n useQuery({\n queryKey: [ACCESS_CONTROL_CONFIGURATION, ownerType, ownerId],\n queryFn: () => configurationsApi.show({ ownerType, ownerId }),\n select: prop(\"configuration\"),\n staleTime: DEFAULT_STALE_TIME,\n });\n\nexport const useUpdateConfiguration = ({ ownerId, ownerType }, options) =>\n useMutationWithInvalidation(\n payload => configurationsApi.update({ ownerId, ownerType, payload }),\n {\n keysToInvalidate: [\n [ACCESS_CONTROL_CONFIGURATION, ownerType, ownerId],\n [ACCESS_CONTROL_CONFIGURATION_INVITATIONS, ownerType, ownerId],\n ],\n ...options,\n }\n );\n"],"names":["ACCESS_CONTROL_BASE_PATH","invitationsPath","concat","list","params","axios","get","bulkCreate","_ref","configurationId","payload","post","neetoAccessControlConfigurationId","bulkDestroy","_ref2","invitationsApi","QUERY_KEYS","ACCESS_CONTROL_CONFIGURATION","ACCESS_CONTROL_CONFIGURATION_INVITATIONS","useListInvitations","options","ownerId","ownerType","otherParams","_objectWithoutProperties","_excluded","useQuery","_objectSpread","queryKey","queryFn","staleTime","DEFAULT_STALE_TIME","useBulkCreateInvitations","useMutationWithInvalidation","keysToInvalidate","useBulkDestroyInvitations","_ref3","configurationPath","show","update","put","configuration","configurationsApi","useShowConfiguration","select","prop","useUpdateConfiguration"],"mappings":"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"}