chore: use strapi.service instead of strapi.admin.services

This commit is contained in:
Alexandre Bodin 2024-03-27 23:16:51 +01:00
parent daf629fd13
commit eb61511884
37 changed files with 95 additions and 87 deletions

View File

@ -82,7 +82,7 @@ module.exports = async () => {
subCategory: 'options',
},
];
await strapi.admin.services.permission.actionProvider.registerMany(actions);
await strapi.service('admin::permission').actionProvider.registerMany(actions);
};
```
@ -136,7 +136,7 @@ module.exports = async () => {
handler: (user) => ({ 'createdBy.id': user.id }),
},
];
await strapi.admin.services.permission.conditionProvider.registerMany(conditions);
await strapi.service('admin::permission').conditionProvider.registerMany(conditions);
};
```

View File

@ -104,7 +104,7 @@ describe('Stages', () => {
});
test('cannot transition', async () => {
global.strapi.admin.services['stage-permissions'].can.mockReturnValueOnce(false);
global.strapi.service('admin::stage-permissions').can.mockReturnValueOnce(false);
const ctx: any = {
...baseCtx,
@ -145,7 +145,7 @@ describe('Stages', () => {
});
test('cannot transition', async () => {
global.strapi.admin.services['stage-permissions'].can.mockReturnValueOnce(false);
global.strapi.service('admin::stage-permissions').can.mockReturnValueOnce(false);
const ctx: any = {
...baseCtx,

View File

@ -18,7 +18,7 @@ const providerAuthenticationFlow = compose([
export default {
async getProviders(ctx: Context) {
const { providerRegistry } = strapi.admin.services.passport;
const { providerRegistry } = strapi.service('admin::passport');
ctx.body = providerRegistry.getAll().map(toProviderDTO);
},
@ -56,7 +56,7 @@ export default {
params: { provider: providerName },
} = ctx;
const { providerRegistry } = strapi.admin.services.passport;
const { providerRegistry } = strapi.service('admin::passport');
if (!providerRegistry.has(providerName)) {
throw new ValidationError(`Invalid provider supplied: ${providerName}`);

View File

@ -3,7 +3,7 @@ import type { Core } from '@strapi/types';
import { getService } from '../utils';
const getSSOProvidersList = async () => {
const { providerRegistry } = strapi.admin.services.passport;
const { providerRegistry } = strapi.service('admin::passport');
return providerRegistry.getAll().map(({ uid }: { uid: string }) => uid);
};

View File

@ -11,7 +11,7 @@ const providerOptionsUpdateSchema = yup.object().shape({
if (roleId === null) {
return true;
}
return strapi.admin.services.role.exists({ id: roleId });
return strapi.service('admin::role').exists({ id: roleId });
}),
ssoLockedRoles: yup
.array()
@ -23,7 +23,7 @@ const providerOptionsUpdateSchema = yup.object().shape({
'is-valid-role',
'You must submit a valid role for the SSO Locked roles',
(roleId) => {
return strapi.admin.services.role.exists({ id: roleId });
return strapi.service('admin::role').exists({ id: roleId });
}
)
),

View File

@ -21,10 +21,10 @@ const rolesDeleteSchema = yup
'Roles deletion checks have failed',
async function rolesDeletionChecks(ids) {
try {
await strapi.admin.services.role.checkRolesIdForDeletion(ids);
await strapi.service('admin::role').checkRolesIdForDeletion(ids);
if (strapi.ee.features.isEnabled('sso')) {
await strapi.admin.services.role.ssoCheckRolesIdForDeletion(ids);
await strapi.service('admin::role').ssoCheckRolesIdForDeletion(ids);
}
} catch (e: any) {
return this.createError({ path: 'ids', message: e.message });
@ -44,10 +44,10 @@ const roleDeleteSchema = yup
'Role deletion checks have failed',
async function noAdminSingleDelete(id) {
try {
await strapi.admin.services.role.checkRolesIdForDeletion([id]);
await strapi.service('admin::role').checkRolesIdForDeletion([id]);
if (strapi.ee.features.isEnabled('sso')) {
await strapi.admin.services.role.ssoCheckRolesIdForDeletion([id]);
await strapi.service('admin::role').ssoCheckRolesIdForDeletion([id]);
}
} catch (e: any) {
return this.createError({ path: 'id', message: e.message });

View File

@ -38,7 +38,7 @@ describe('Admin Controller', () => {
'packageJsonStrapi.telemetryDisabled',
null
);
expect(global.strapi.admin.services.user.exists).toHaveBeenCalled();
expect(global.strapi.service('admin::user').exists).toHaveBeenCalled();
expect(result.data).toBeDefined();
expect(result.data).toStrictEqual({
uuid: 'foo',

View File

@ -195,7 +195,7 @@ describe('Permission Controller', () => {
await permissionController.check(ctx);
expect(localTestData.ability.can).toHaveBeenCalled();
expect(strapi.admin.services.permission.engine.checkMany).toHaveBeenCalled();
expect(strapi.service('admin::permission').engine.checkMany).toHaveBeenCalled();
expect(ctx.body.data).toHaveLength(localTestData.permissions.valid.length);
});
});

View File

@ -58,7 +58,7 @@ export default {
async find(ctx: Context) {
const userService = getService('user');
const permissionsManager = strapi.admin.services.permission.createPermissionsManager({
const permissionsManager = strapi.service('admin::permission').createPermissionsManager({
ability: ctx.state.userAbility,
model: 'admin::user',
});

View File

@ -11,7 +11,7 @@ const authEventsMapper = {
const valueIsFunctionType = ([, value]: [any, any]) => isFunction(value);
const keyIsValidEventName = ([key]: any) => {
return Object.keys(strapi.admin.services.passport.authEventsMapper).includes(key);
return Object.keys(strapi.service('admin::passport').authEventsMapper).includes(key);
};
const getPassportStrategies = () => [createLocalStrategy(strapi)] as Strategy[];
@ -19,7 +19,7 @@ const getPassportStrategies = () => [createLocalStrategy(strapi)] as Strategy[];
const registerAuthEvents = () => {
// @ts-expect-error - TODO: migrate auth service to TS
const { events = {} } = strapi.config.get('admin.auth', {});
const { authEventsMapper } = strapi.admin.services.passport;
const { authEventsMapper } = strapi.service('admin::passport');
const eventList = Object.entries(events).filter(keyIsValidEventName).filter(valueIsFunctionType);
@ -30,7 +30,8 @@ const registerAuthEvents = () => {
};
const init = () => {
strapi.admin.services.passport
strapi
.service('admin::passport')
.getPassportStrategies()
.forEach((strategy: Strategy) => passport.use(strategy));

View File

@ -341,7 +341,7 @@ const flattenTokenPermissions = (token: DatabaseTransferToken): TransferToken =>
* Assert that a token's permissions are valid
*/
const assertTokenPermissionsValidity = (attributes: TokenUpdatePayload) => {
const permissionService = strapi.admin.services.transfer.permission;
const permissionService = strapi.service('admin::transfer').permission;
const validPermissions = permissionService.providers.action.keys();
const invalidPermissions = difference(attributes.permissions, validPermissions);

View File

@ -41,7 +41,7 @@ export const arrayOfConditionNames = yup
.array()
.of(yup.string())
.test('is-an-array-of-conditions', 'is not a plugin name', function (value) {
const ids = strapi.admin.services.permission.conditionProvider.keys();
const ids = strapi.service('admin::permission').conditionProvider.keys();
return _.isUndefined(value) || _.difference(value, ids).length === 0
? true
: this.createError({ path: this.path, message: `contains conditions that don't exist` });

View File

@ -18,7 +18,7 @@ const rolesDeleteSchema = yup
.required()
.test('roles-deletion-checks', 'Roles deletion checks have failed', async function (ids) {
try {
await strapi.admin.services.role.checkRolesIdForDeletion(ids);
await strapi.service('admin::role').checkRolesIdForDeletion(ids);
} catch (e) {
// @ts-expect-error yup types
return this.createError({ path: 'ids', message: e.message });
@ -34,7 +34,7 @@ const roleDeleteSchema = yup
.required()
.test('no-admin-single-delete', 'Role deletion checks have failed', async function (id) {
try {
await strapi.admin.services.role.checkRolesIdForDeletion([id]);
await strapi.service('admin::role').checkRolesIdForDeletion([id]);
} catch (e) {
// @ts-expect-error yup types
return this.createError({ path: 'id', message: e.message });

View File

@ -64,7 +64,7 @@ describe('register', () => {
strapi.ee.features.isEnabled.mockReturnValue(true);
register({ strapi });
expect(strapi.admin.services.permission.actionProvider.registerMany).toHaveBeenCalledWith(
expect(strapi.service('admin::permission').actionProvider.registerMany).toHaveBeenCalledWith(
ACTIONS
);
});
@ -73,7 +73,7 @@ describe('register', () => {
strapi.ee.features.isEnabled.mockReturnValue(false);
register({ strapi });
expect(strapi.admin.services.permission.actionProvider.registerMany).not.toHaveBeenCalled();
expect(strapi.service('admin::permission').actionProvider.registerMany).not.toHaveBeenCalled();
});
it('should exclude the release and release action models from the GraphQL schema when the feature is enabled', async () => {

View File

@ -262,7 +262,7 @@ describe('Release controller', () => {
// @ts-expect-error partial context
await releaseController.findOne(ctx);
expect(strapi.admin.services.user.sanitizeUser).toHaveBeenCalled();
expect(strapi.service('admin::user').sanitizeUser).toHaveBeenCalled();
});
});
});

View File

@ -75,7 +75,7 @@ const releaseActionController = {
async findMany(ctx: Koa.Context) {
const releaseId: GetReleaseActions.Request['params']['releaseId'] = ctx.params.releaseId;
const permissionsManager = strapi.admin.services.permission.createPermissionsManager({
const permissionsManager = strapi.service('admin::permission').createPermissionsManager({
ability: ctx.state.userAbility,
model: RELEASE_ACTION_MODEL_UID,
});
@ -97,8 +97,9 @@ const releaseActionController = {
return acc;
}
const contentTypePermissionsManager =
strapi.admin.services.permission.createPermissionsManager({
const contentTypePermissionsManager = strapi
.service('admin::permission')
.createPermissionsManager({
ability: ctx.state.userAbility,
model: action.contentType,
});

View File

@ -19,7 +19,7 @@ type ReleaseWithPopulatedActions = Release & { actions: { count: number } };
const releaseController = {
async findMany(ctx: Koa.Context) {
const permissionsManager = strapi.admin.services.permission.createPermissionsManager({
const permissionsManager = strapi.service('admin::permission').createPermissionsManager({
ability: ctx.state.userAbility,
model: RELEASE_MODEL_UID,
});
@ -89,7 +89,7 @@ const releaseController = {
const sanitizedRelease = {
...release,
createdBy: release.createdBy
? strapi.admin.services.user.sanitizeUser(release.createdBy)
? strapi.service('admin::user').sanitizeUser(release.createdBy)
: null,
};
@ -115,7 +115,7 @@ const releaseController = {
const releaseService = getService('release', { strapi });
const release = await releaseService.create(releaseArgs, { user });
const permissionsManager = strapi.admin.services.permission.createPermissionsManager({
const permissionsManager = strapi.service('admin::permission').createPermissionsManager({
ability: ctx.state.userAbility,
model: RELEASE_MODEL_UID,
});
@ -135,7 +135,7 @@ const releaseController = {
const releaseService = getService('release', { strapi });
const release = await releaseService.update(id, releaseArgs, { user });
const permissionsManager = strapi.admin.services.permission.createPermissionsManager({
const permissionsManager = strapi.service('admin::permission').createPermissionsManager({
ability: ctx.state.userAbility,
model: RELEASE_MODEL_UID,
});

View File

@ -104,5 +104,5 @@ const registerPermissionActions = async () => {
},
];
await strapi.admin.services.permission.actionProvider.registerMany(actions);
await strapi.service('admin::permission').actionProvider.registerMany(actions);
};

View File

@ -15,7 +15,7 @@ export default {
const defaultQuery = { populate: { folder: true } };
const pm = strapi.admin.services.permission.createPermissionsManager({
const pm = strapi.service('admin::permission').createPermissionsManager({
ability: userAbility,
action: ACTIONS.read,
model: FILE_MODEL_UID,

View File

@ -18,12 +18,12 @@ export default {
state: { userAbility },
} = ctx;
const pmFolder = strapi.admin.services.permission.createPermissionsManager({
const pmFolder = strapi.service('admin::permission').createPermissionsManager({
ability: ctx.state.userAbility,
model: FOLDER_MODEL_UID,
});
const pmFile = strapi.admin.services.permission.createPermissionsManager({
const pmFile = strapi.service('admin::permission').createPermissionsManager({
ability: userAbility,
action: ACTIONS.read,
model: FILE_MODEL_UID,
@ -65,12 +65,12 @@ export default {
state: { userAbility },
} = ctx;
const pmFolder = strapi.admin.services.permission.createPermissionsManager({
const pmFolder = strapi.service('admin::permission').createPermissionsManager({
ability: ctx.state.userAbility,
model: FOLDER_MODEL_UID,
});
const pmFile = strapi.admin.services.permission.createPermissionsManager({
const pmFile = strapi.service('admin::permission').createPermissionsManager({
ability: userAbility,
action: ACTIONS.read,
model: FILE_MODEL_UID,

View File

@ -10,7 +10,7 @@ export default {
async findOne(ctx: Context) {
const { id } = ctx.params;
const permissionsManager = strapi.admin.services.permission.createPermissionsManager({
const permissionsManager = strapi.service('admin::permission').createPermissionsManager({
ability: ctx.state.userAbility,
model: FOLDER_MODEL_UID,
});
@ -48,7 +48,7 @@ export default {
},
async find(ctx: Context) {
const permissionsManager = strapi.admin.services.permission.createPermissionsManager({
const permissionsManager = strapi.service('admin::permission').createPermissionsManager({
ability: ctx.state.userAbility,
model: FOLDER_MODEL_UID,
});
@ -89,7 +89,7 @@ export default {
const folder = await folderService.create(body, { user });
const permissionsManager = strapi.admin.services.permission.createPermissionsManager({
const permissionsManager = strapi.service('admin::permission').createPermissionsManager({
ability: ctx.state.userAbility,
model: FOLDER_MODEL_UID,
});
@ -104,7 +104,7 @@ export default {
const { user } = ctx.state;
const { body } = ctx.request;
const permissionsManager = strapi.admin.services.permission.createPermissionsManager({
const permissionsManager = strapi.service('admin::permission').createPermissionsManager({
ability: ctx.state.userAbility,
model: FOLDER_MODEL_UID,
});

View File

@ -75,7 +75,7 @@ export default {
} = ctx;
const uploadService = getService('upload');
const pm = strapi.admin.services.permission.createPermissionsManager({
const pm = strapi.service('admin::permission').createPermissionsManager({
ability: userAbility,
action: ACTIONS.create,
model: FILE_MODEL_UID,

View File

@ -17,10 +17,14 @@ const findEntityAndCheckPermissions = async (
throw new errors.NotFoundError();
}
const pm = strapi.admin.services.permission.createPermissionsManager({ ability, action, model });
const pm = strapi
.service('admin::permission')
.createPermissionsManager({ ability, action, model });
const creatorId = _.get(file, [contentTypesUtils.constants.CREATED_BY_ATTRIBUTE, 'id']);
const author = creatorId ? await strapi.admin.services.user.findOne(creatorId, ['roles']) : null;
const author = creatorId
? await strapi.service('admin::user').findOne(creatorId, ['roles'])
: null;
const fileWithRoles = _.set(_.cloneDeep(file), 'createdBy', author);

View File

@ -29,7 +29,7 @@ const controller = {
const {
default: { READ_ACTION, CREATE_ACTION },
} = strapi.admin.services.constants;
} = strapi.service('admin::constants');
const modelDef = strapi.contentType(model);
const attributesToPopulate = getNestedPopulateOfNonLocalizedAttributes(model);

View File

@ -43,7 +43,7 @@ const shouldApplyLocalesPropertyToSubject = ({ property, subject }: any) => {
};
const addAllLocalesToPermissions = async (permissions: any) => {
const { actionProvider } = strapi.admin.services.permission;
const { actionProvider } = strapi.service('admin::permission');
const { find: findAllLocales } = getService('locales');
const allLocales = await findAllLocales();
@ -71,8 +71,8 @@ const addAllLocalesToPermissions = async (permissions: any) => {
};
const syncSuperAdminPermissionsWithLocales = async () => {
const roleService = strapi.admin.services.role;
const permissionService = strapi.admin.services.permission;
const roleService = strapi.service('admin::role');
const permissionService = strapi.service('admin::permission');
const superAdminRole = await roleService.getSuperAdmin();
@ -94,21 +94,21 @@ const syncSuperAdminPermissionsWithLocales = async () => {
};
const registerI18nActions = async () => {
const { actionProvider } = strapi.admin.services.permission;
const { actionProvider } = strapi.service('admin::permission');
await actionProvider.registerMany(actions);
};
const registerI18nActionsHooks = () => {
const { actionProvider } = strapi.admin.services.permission;
const { hooks } = strapi.admin.services.role;
const { actionProvider } = strapi.service('admin::permission');
const { hooks } = strapi.service('admin::role');
actionProvider.hooks.appliesPropertyToSubject.register(shouldApplyLocalesPropertyToSubject);
hooks.willResetSuperAdminPermissions.register(addAllLocalesToPermissions);
};
const updateActionsProperties = () => {
const { actionProvider } = strapi.admin.services.permission;
const { actionProvider } = strapi.service('admin::permission');
// Register the transformation for every new action
actionProvider.hooks.willRegister.register(addLocalesPropertyIfNeeded);

View File

@ -5,7 +5,7 @@ const conditions = [
plugin: 'i18n',
handler(user: any, options: any) {
const { locales } = options.permission.properties || {};
const { superAdminCode } = strapi.admin.services.role.constants;
const { superAdminCode } = strapi.service('admin::role').constants;
const isSuperAdmin = user.roles.some((role: any) => role.code === superAdminCode);
@ -23,7 +23,7 @@ const conditions = [
];
const registerI18nConditions = async () => {
const { conditionProvider } = strapi.admin.services.permission;
const { conditionProvider } = strapi.service('admin::permission');
await conditionProvider.registerMany(conditions);
};

View File

@ -16,7 +16,7 @@ const willRegisterPermission = (context: any) => {
const { permission, condition, user } = context;
const { subject, properties } = permission;
const isSuperAdmin = strapi.admin.services.role.hasSuperAdminRole(user);
const isSuperAdmin = strapi.service('admin::role').hasSuperAdminRole(user);
if (isSuperAdmin) {
return;
@ -50,7 +50,7 @@ const willRegisterPermission = (context: any) => {
};
const registerI18nPermissionsHandlers = () => {
const { engine } = strapi.admin.services.permission;
const { engine } = strapi.service('admin::permission');
engine.hooks['before-register.permission'].register(willRegisterPermission);
};

View File

@ -10,7 +10,7 @@ import { getService } from '../../utils';
* @return {Promise<void>}
*/
const localesPropertyHandler = async ({ action, section }: any) => {
const { actionProvider } = strapi.admin.services.permission;
const { actionProvider } = strapi.service('admin::permission');
const locales = await getService('locales').find();
@ -36,7 +36,7 @@ const localesPropertyHandler = async ({ action, section }: any) => {
};
const registerLocalesPropertyHandler = () => {
const { sectionsBuilder } = strapi.admin.services.permission;
const { sectionsBuilder } = strapi.service('admin::permission');
sectionsBuilder.addHandler('singleTypes', localesPropertyHandler);
sectionsBuilder.addHandler('collectionTypes', localesPropertyHandler);

View File

@ -103,9 +103,9 @@ module.exports = async ({ strapi }) => {
await initEmails(pluginStore);
await initAdvancedOptions(pluginStore);
await strapi.admin.services.permission.actionProvider.registerMany(
usersPermissionsActions.actions
);
await strapi
.service('admin::permission')
.actionProvider.registerMany(usersPermissionsActions.actions);
await getService('users-permissions').initialize();

View File

@ -25,7 +25,9 @@ const findEntityAndCheckPermissions = async (ability, action, model, id) => {
throw new NotFoundError();
}
const pm = strapi.admin.services.permission.createPermissionsManager({ ability, action, model });
const pm = strapi
.service('admin::permission')
.createPermissionsManager({ ability, action, model });
if (pm.ability.cannot(pm.action, pm.toSubject(doc))) {
throw new ForbiddenError();
@ -47,7 +49,7 @@ module.exports = {
const { email, username } = body;
const pm = strapi.admin.services.permission.createPermissionsManager({
const pm = strapi.service('admin::permission').createPermissionsManager({
ability: userAbility,
action: ACTIONS.create,
model: userModel,

View File

@ -9,29 +9,29 @@ const createUtils = (strapi) => {
if (!user) {
throw new Error('User not found');
}
const token = strapi.admin.services.token.createJwtToken(user);
const token = strapi.service('admin::token').createJwtToken(user);
return { token, user };
};
const findUser = strapi.admin.services.user.findOne;
const userExists = strapi.admin.services.user.exists;
const findUser = strapi.service('admin::user').findOne;
const userExists = strapi.service('admin::user').exists;
const createUser = async (userInfo) => {
const superAdminRole = await strapi.admin.services.role.getSuperAdminWithUsersCount();
const superAdminRole = await strapi.service('admin::role').getSuperAdminWithUsersCount();
if (superAdminRole.usersCount === 0) {
const userRoles = _.uniq((userInfo.roles || []).concat(superAdminRole.id));
Object.assign(userInfo, { roles: userRoles });
}
return strapi.admin.services.user.create({
return strapi.service('admin::user').create({
registrationToken: null,
isActive: true,
...userInfo,
});
};
const deleteUserById = strapi.admin.services.user.deleteById;
const deleteUsersById = strapi.admin.services.user.deleteByIds;
const deleteUserById = strapi.service('admin::user').deleteById;
const deleteUsersById = strapi.service('admin::user').deleteByIds;
const createUserIfNotExists = async (userInfo) => {
const sanitizedUserInfo = _.pick(userInfo, ['email', 'id']);
const exists = await userExists(sanitizedUserInfo);
@ -44,11 +44,11 @@ const createUtils = (strapi) => {
return login(userCredentials);
};
const createRole = strapi.admin.services.role.create;
const getRole = strapi.admin.services.role.find;
const deleteRolesById = strapi.admin.services.role.deleteByIds;
const getSuperAdminRole = strapi.admin.services.role.getSuperAdmin;
const assignPermissionsToRole = strapi.admin.services.role.assignPermissions;
const createRole = strapi.service('admin::role').create;
const getRole = strapi.service('admin::role').find;
const deleteRolesById = strapi.service('admin::role').deleteByIds;
const getSuperAdminRole = strapi.service('admin::role').getSuperAdmin;
const assignPermissionsToRole = strapi.service('admin::role').assignPermissions;
return {
// Auth

View File

@ -12,10 +12,10 @@ describe('Admin API Token v2 CRUD (api)', () => {
let nowSpy;
const deleteAllTokens = async () => {
const tokens = await strapi.admin.services['api-token'].list();
const tokens = await strapi.service('admin::api-token').list();
const promises = [];
tokens.forEach(({ id }) => {
promises.push(strapi.admin.services['api-token'].revoke(id));
promises.push(strapi.service('admin::api-token').revoke(id));
});
await Promise.all(promises);
};

View File

@ -517,7 +517,7 @@ describe('Admin Auth End to End', () => {
describe('POST /forgot-password', () => {
test('Always returns en empty response', async () => {
global.strapi.admin.services.auth.forgotPassword = jest.fn(() => {});
global.strapi.service('admin::auth').forgotPassword = jest.fn(() => {});
const res = await rq({
url: '/admin/forgot-password',

View File

@ -172,9 +172,9 @@ describe.skip('Admin Permissions - Conditions', () => {
strapi = await createStrapiInstance({
bootstrap: ({ strapi }) => {
// Create custom conditions
return strapi.admin.services.permission.conditionProvider.registerMany(
localTestData.customConditions
);
return strapi
.service('admin::permission')
.conditionProvider.registerMany(localTestData.customConditions);
},
});
utils = createUtils(strapi);

View File

@ -12,10 +12,10 @@ describe('Admin Transfer Token CRUD (api)', () => {
const FULL_ACCESS = ['push', 'pull'];
const deleteAllTokens = async () => {
const tokens = await strapi.admin.services.transfer.token.list();
const tokens = await strapi.service('admin::transfer').token.list();
const promises = [];
tokens.forEach(({ id }) => {
promises.push(strapi.admin.services.transfer.token.revoke(id));
promises.push(strapi.service('admin::transfer').token.revoke(id));
});
await Promise.all(promises);
};

View File

@ -30,7 +30,7 @@ module.exports = {
* @returns {Promise<void>}
*/
const createTestTransferToken = async (strapi) => {
const { token: transferTokenService } = strapi.admin.services.transfer;
const { token: transferTokenService } = strapi.service('admin::transfer');
const accessKeyHash = transferTokenService.hash(CUSTOM_TRANSFER_TOKEN_ACCESS_KEY);
const exists = await transferTokenService.exists({ accessKey: accessKeyHash });

View File

@ -8,7 +8,7 @@ const { CUSTOM_TRANSFER_TOKEN_ACCESS_KEY } = require('./constants');
* @returns {Promise<void>}
*/
const createTestTransferToken = async (strapi) => {
const { token: transferTokenService } = strapi.admin.services.transfer;
const { token: transferTokenService } = strapi.service('admin::transfer');
const accessKeyHash = transferTokenService.hash(CUSTOM_TRANSFER_TOKEN_ACCESS_KEY);
const exists = await transferTokenService.exists({ accessKey: accessKeyHash });