UNPKG

sx-cli-tool

Version:

Laravel va Vue frameworklaridagi monolith arxitektura loyihalarni boshqarish uchun mo'ljallangan CLI tool

85 lines (74 loc) 3 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateController = generateController; const folder_1 = require("../../utils/folder"); const formatter_1 = require("../../utils/formatter"); const prettier_1 = require("../../utils/prettier"); const fs_1 = __importDefault(require("fs")); const path_1 = __importDefault(require("path")); function generateController(entityName, projectPath, groupName = "/admin") { const lowerCasedEntityName = entityName.toLowerCase(); const controllerPath = path_1.default.join(projectPath, "app", "Http", "Controllers", groupName, `${entityName}Controller.php`); const template = `<?php namespace App\\Http\\Controllers${(0, formatter_1.replaceSlashes)(groupName)}; use App\\Models${(0, formatter_1.replaceSlashes)(groupName)}\\${entityName}; use App\\Http\\Requests${(0, formatter_1.replaceSlashes)(groupName)}\\${entityName}FormRequest; use Illuminate\\Http\\Request; use App\\Http\\Controllers\\Controller; class ${entityName}Controller extends Controller {/** * ${lowerCasedEntityName} ro'yxatini ko'rsatadi. */ public function index(Request $request) { $limit = $request->input('limit', 10); // Har bir sahifada ko'rsatiladigan clientlar soni $page = $request->input('page', 1); // Hozirgi sahifa // ${lowerCasedEntityName} sahifalash $data = ${entityName}::paginate($limit, ['*'], 'page', $page); return response()->json($data); } /** * Yangi ${lowerCasedEntityName} qo'shadi. */ public function store(${entityName}FormRequest $request) { $request->validated(); $${lowerCasedEntityName} = ${entityName}::create($request->all()); return response()->json($${lowerCasedEntityName}, 201); } /** * Muayyan ${lowerCasedEntityName} ko'rsatadi. */ public function show($id) { $${lowerCasedEntityName} = ${entityName}::findOrFail($id); return response()->json($${lowerCasedEntityName}); } /** * Muayyan ${lowerCasedEntityName} yangilaydi. */ public function update(${entityName}FormRequest $request, $id) { $${lowerCasedEntityName} = ${entityName}::findOrFail($id); $request->validated(); $${lowerCasedEntityName}->update($request->all()); return response()->json($${lowerCasedEntityName}); } /** * Muayyan ${entityName} o'chiradi. */ public function destroy($id) { $${lowerCasedEntityName} = ${entityName}::findOrFail($id); $${lowerCasedEntityName}->delete(); return response()->json(null, 204); } } `; (0, folder_1.ensureDirectoryExists)(controllerPath); fs_1.default.writeFileSync(controllerPath, template, "utf8"); (0, prettier_1.formatPhpFile)(controllerPath); }