UNPKG

@shopify/shopify-app-remix

Version:

Shopify Remix - to simplify the building of Shopify Apps with Remix

40 lines (37 loc) 1.36 kB
import { revokeScopes } from './client/revoke-scopes.mjs'; import { fetchScopeDetail } from './client/fetch-scopes-details.mjs'; import { mapFetchScopeDetail } from './query.mjs'; function revokeScopesFactory(params, session, admin) { return async function revoke(scopes) { const { logger } = params; logger.debug('Revoke scopes: ', { shop: session.shop, scopes, }); await validateScopes(scopes); const revokeScopesResult = await revokeScopes(admin, scopes); if (revokeScopesResult.userErrors?.length > 0) { logger.error('Failed to revoke scopes: ', { shop: session.shop, errors: revokeScopesResult.userErrors, }); throw new Response(JSON.stringify(revokeScopesResult.userErrors), { status: 422, headers: { 'Content-Type': 'application/json', }, }); } const scopesDetail = await fetchScopeDetail(admin); return { detail: mapFetchScopeDetail(scopesDetail), }; }; } async function validateScopes(scopes) { if (!scopes || scopes.length === 0) { throw new Response('No scopes provided', { status: 400 }); } } export { revokeScopesFactory }; //# sourceMappingURL=revoke.mjs.map