UpdateTemplateVmProvider.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. namespace ModulesGarden\Servers\ProxmoxCloudVps\App\UI\CustomTemplate\Providers;
  3. use MGProvision\Proxmox\v2\VmFactory;
  4. use ModulesGarden\ProxmoxAddon\App\Models\VmModel;
  5. use ModulesGarden\ProxmoxAddon\App\Services\ApiService;
  6. use ModulesGarden\ProxmoxAddon\App\Services\Cloud\ProductService;
  7. use ModulesGarden\ProxmoxAddon\App\Services\CloudService;
  8. use ModulesGarden\Servers\ProxmoxCloudVps\App\Helpers\AppParams;
  9. use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Interfaces\ClientArea;
  10. use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\ResponseTemplates\HtmlDataJsonResponse;
  11. use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Widget\Forms\DataProviders\BaseDataProvider;
  12. class UpdateTemplateVmProvider extends BaseDataProvider implements ClientArea
  13. {
  14. use ProductService;
  15. use ApiService;
  16. public function read()
  17. {
  18. if (!$this->actionElementId)
  19. {
  20. return;
  21. }
  22. $this->data['id'] = $this->actionElementId;
  23. $vmModel = VmModel::ofHostingId($this->getWhmcsParamByKey('serviceid'))
  24. ->ofId($this->actionElementId)->firstOrFail();
  25. $this->data['name'] = $vmModel->name;
  26. $this->api();
  27. $vm = (new VmFactory())->fromVmModel($vmModel);
  28. $this->data['description'] = $vm->config()['description'];
  29. }
  30. public function update()
  31. {
  32. //get vm model
  33. $vmModel = VmModel::ofHostingId($this->getWhmcsParamByKey('serviceid'))
  34. ->ofId($this->getFormDataValues()['id'])->firstOrFail();
  35. $this->api();
  36. $vm = (new VmFactory())->fromVmModel($vmModel);
  37. //update
  38. $vm->updateConfig(['description'=> $this->getFormDataValues()['description'] ]);
  39. return (new HtmlDataJsonResponse())
  40. ->setStatusSuccess()
  41. ->setMessageAndTranslate('The Template has been updated successfully');
  42. }
  43. public function delete()
  44. {
  45. }
  46. }