|
1 | | -import { first, isArray, parallel, sift, tryit } from 'radash'; |
| 1 | +import { first, parallel, sift, tryit } from 'radash'; |
2 | 2 | import { PlatformPermissions } from '../../sdk'; |
3 | 3 | import { client } from './client'; |
4 | 4 | import { |
@@ -39,26 +39,23 @@ export const makePermissions = (): PlatformPermissions => { |
39 | 39 | } |
40 | 40 |
|
41 | 41 | const describe = async (objectType: SalesforceSupportedObjectType) => { |
42 | | - try { |
43 | | - return await client.sobjects.describe(auth, { objectType }); |
44 | | - } catch (err) { |
45 | | - const errBody = (err as any).body; |
46 | | - const { error } = isArray(errBody) ? errBody[0] : errBody; |
47 | | - if ( |
48 | | - !['INVALID_TYPE', 'OBJECT_NOT_FOUND', 'NOT_FOUND'].includes(error) |
49 | | - ) { |
50 | | - console.warn({ |
51 | | - message: `Unknown permissions error for ${objectType}`, |
52 | | - error, |
53 | | - metadata: { |
54 | | - context: err, |
55 | | - }, |
56 | | - }); |
57 | | - } |
58 | | - return { |
59 | | - data: { createable: false, updateable: false, retrieveable: false }, |
60 | | - }; |
| 42 | + const [error, result] = await tryit(client.sobjects.describe)(auth, { |
| 43 | + objectType, |
| 44 | + }); |
| 45 | + if (result) return result; |
| 46 | + if ( |
| 47 | + !['INVALID_TYPE', 'OBJECT_NOT_FOUND', 'NOT_FOUND'].includes( |
| 48 | + (error?.cause as any)?.body?.error, |
| 49 | + ) |
| 50 | + ) { |
| 51 | + console.warn('unknown salesforce error', { |
| 52 | + objectType, |
| 53 | + error, |
| 54 | + }); |
61 | 55 | } |
| 56 | + return { |
| 57 | + data: { createable: false, updateable: false, retrieveable: false }, |
| 58 | + }; |
62 | 59 | }; |
63 | 60 |
|
64 | 61 | const check = async (objectType: string) => { |
|
0 commit comments