CustomFieldController.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?php
  2. namespace App\Http\Controllers\API;
  3. use App\Http\Controllers\Controller;
  4. use App\Http\Requests\API\CustomField\CreateOrUpdateRequest;
  5. use App\Http\Resources\API\CustomFieldResource;
  6. use App\Http\Resources\API\NamingRuleSimpleResource;
  7. use App\Models\CustomField;
  8. use App\Models\Enums\CustomFieldGroupType;
  9. use App\Models\NamingRule;
  10. use Illuminate\Http\Request;
  11. use Illuminate\Support\Facades\Auth;
  12. use function Nette\Utils\isEmpty;
  13. class CustomFieldController extends Controller
  14. {
  15. /**
  16. * Display a listing of the resource.
  17. */
  18. public function index(Request $request)
  19. {
  20. $customFields = CustomField::query()->filter($request->all())->get();
  21. return CustomFieldResource::collection($customFields);
  22. }
  23. /**
  24. * Store a newly created resource in storage.
  25. */
  26. public function store(CreateOrUpdateRequest $request)
  27. {
  28. switch ($request->input('group_type')) {
  29. case CustomFieldGroupType::NAMING_RULE->value:
  30. NamingRule::query()->findOrFail($request->input('group'));
  31. break;
  32. case CustomFieldGroupType::DICTIONARY->value:
  33. break;
  34. default:
  35. return $this->forbidden("Operation without permission");
  36. }
  37. CustomField::query()->updateOrCreate([
  38. 'group' => $request->group,
  39. 'key' => $request->key,
  40. ], $request->all());
  41. return $this->created();
  42. }
  43. public function groups()
  44. {
  45. $allGroups=config("custom-field.groups");
  46. return $this->success([
  47. 'data'=> $allGroups
  48. ]);
  49. }
  50. public function nameRuleGroups(Request $request)
  51. {
  52. $nameGroupId=$request->get('nameGroupId');
  53. $nameRuleGroup = NamingRule::query()->where('id',$nameGroupId)->get();
  54. return NamingRuleSimpleResource::collection($nameRuleGroup);
  55. }
  56. /**
  57. * Display the specified resource.
  58. */
  59. public function show(string $id)
  60. {
  61. $field = CustomField::query()->findOrFail($id);
  62. return new CustomFieldResource($field);
  63. }
  64. /**
  65. * Update the specified resource in storage.
  66. */
  67. public function update(Request $request, string $id)
  68. {
  69. //
  70. }
  71. /**
  72. * Remove the specified resource from storage.
  73. */
  74. public function destroy(string $id)
  75. {
  76. //
  77. $field = CustomField::query()->findOrFail($id);
  78. $field->delete();
  79. return $this->noContent();
  80. }
  81. }