{"version":3,"file":"block-user.mjs","sources":["../../../../../src/cli/commands/admin/block-user.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { DistinctQuestion } from 'inquirer';\nimport { createCommand } from 'commander';\nimport { createStrapi, compileStrapi } from '@strapi/core';\n\nimport type { StrapiCommand } from '../../types';\nimport { runAction } from '../../utils/helpers';\nimport { getInquirer } from '../../utils/get-inquirer';\n\ninterface CmdOptions {\n  email?: string;\n  block?: string;\n}\n\ninterface Answers {\n  email: string;\n  block: string;\n}\n\nconst promptQuestions: ReadonlyArray<DistinctQuestion<Answers>> = [\n  { type: 'input', name: 'email', message: 'User email?' },\n  { type: 'input', name: 'block', message: 'User Blocked?' },\n];\n\nasync function setBlock({ email, block }: CmdOptions) {\n  const appContext = await compileStrapi();\n  const app = await createStrapi(appContext).load();\n\n  const cleanEmail = email?.trim().toLowerCase();\n  const cleanBlock = block?.trim().toLowerCase();\n\n  if (cleanBlock !== 'true' && cleanBlock !== 'false') {\n    console.error('Invalid block status. Use \"true\" or \"false\".');\n    process.exit(1);\n  }\n\n  const blocked = cleanBlock === 'true';\n\n  const user = await app.admin.services.user.findOneByEmail(cleanEmail);\n\n  if (!user) {\n    console.error(`User with email \"${cleanEmail}\" does not exist`);\n    process.exit(1);\n  }\n\n  try {\n    await app.admin!.services.user.updateById(user.id, { blocked });\n  } catch (err: any) {\n    console.error(err.message);\n    process.exit(1);\n  }\n\n  console.log(`Successfully set ${cleanEmail} block status to ${cleanBlock}`);\n  process.exit(0);\n}\n\n/**\n * Change a user's block status\n */\nconst action = async (cmdOptions: CmdOptions = {}) => {\n  const { email, block } = cmdOptions;\n\n  if (_.isEmpty(email) && _.isEmpty(block) && process.stdin.isTTY) {\n    const inquirer = await getInquirer();\n    const inquiry = await inquirer.prompt(promptQuestions);\n\n    return setBlock(inquiry);\n  }\n\n  if (_.isEmpty(email) || _.isEmpty(block)) {\n    console.error('Missing required options `email` or `block`');\n    process.exit(1);\n  }\n\n  return setBlock({ email, block });\n};\n\n/**\n * `$ strapi admin:block-user`\n */\nconst command: StrapiCommand = () => {\n  return createCommand('admin:block-user')\n    .alias('admin:block')\n    .description(\"Set a user's block status\")\n    .option('-e, --email <email>', 'The user email')\n    .option('-b, --block <true/false>', 'The user block status')\n    .action(runAction('admin:block-user', action));\n};\n\nexport { action, command };\n"],"names":["promptQuestions","type","name","message","setBlock","email","block","appContext","compileStrapi","app","createStrapi","load","cleanEmail","trim","toLowerCase","cleanBlock","console","error","process","exit","blocked","user","admin","services","findOneByEmail","updateById","id","err","log","action","cmdOptions","_","isEmpty","stdin","isTTY","inquirer","getInquirer","inquiry","prompt","command","createCommand","alias","description","option","runAction"],"mappings":"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"}