UpdateRessource.php 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?php
  2. namespace ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Services\Update;
  3. use ModulesGarden\Servers\ZimbraEmail\App\Enums\Size;
  4. use ModulesGarden\Servers\ZimbraEmail\App\Enums\ProductParams;
  5. use ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Interfaces\ApiService;
  6. use ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Models\Ressource;
  7. use ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Services\Create\CreateRessource;
  8. /**
  9. *
  10. * Created by PhpStorm.
  11. * User: Tomasz Bielecki ( tomasz.bi@modulesgarden.com )
  12. * Date: 18.09.19
  13. * Time: 11:09
  14. * Class UpdateRessource
  15. */
  16. class UpdateRessource extends CreateRessource
  17. {
  18. /**
  19. * @return bool|mixed|Ressource|void
  20. */
  21. protected function process()
  22. {
  23. /**
  24. *
  25. */
  26. $model = $this->getModel();
  27. /**
  28. * update ressource in ZIMBRA
  29. */
  30. $result = $this->api->ressource->update($model);
  31. logModuleCall(
  32. 'zimbraEmail',
  33. __FUNCTION__,
  34. $this->api->ressource->getLastResult(),
  35. 'Debug Update',
  36. $result
  37. );
  38. /**
  39. * problem with create ressource
  40. */
  41. if(!$result)
  42. {
  43. $this->setError($this->api->ressource->getLastResult()->getLastErrorCode());
  44. return false;
  45. }
  46. return $result;
  47. }
  48. /**
  49. * @return Ressource
  50. */
  51. public function getModel()
  52. {
  53. $ressource = new Ressource();
  54. /**
  55. * set ressource attributes
  56. */
  57. $ressource->setId($this->formData['id']);
  58. $ressource->setAttr(Ressource::ATTR_NAME, $this->formData['name']);
  59. $ressource->setAttr(Ressource::ATTR_STATUS, $this->formData['status']);
  60. $ressource->setAttr(Ressource::ATTR_TYPE, $this->formData['type']);
  61. $ressource->setAttr(Ressource::ATTR_DISPLAY_NAME, $this->formData['display_name']);
  62. $ressource->setAttr(Ressource::ATTR_DESC, $this->formData['description']);
  63. $ressource->setAttr(Ressource::ATTR_NOTE, $this->formData['notes']);
  64. $ressource->setAttr(Ressource::ATTR_CONT, $this->formData['contact']);
  65. $ressource->setAttr(Ressource::ATTR_CONT_EMAIL, $this->formData['contact_mail']);
  66. $ressource->setAttr(Ressource::ATTR_CONT_PHONE, $this->formData['contact_phone']);
  67. $ressource->setAttr(Ressource::ATTR_SITE, $this->formData['site']);
  68. $ressource->setAttr(Ressource::ATTR_BUILDING, $this->formData['building']);
  69. $ressource->setAttr(Ressource::ATTR_FLOOR, $this->formData['floor']);
  70. $ressource->setAttr(Ressource::ATTR_ROOM, $this->formData['room']);
  71. $ressource->setAttr(Ressource::ATTR_CAPACITY, $this->formData['capacity']);
  72. $ressource->setAttr(Ressource::ATTR_STREET, $this->formData['street']);
  73. $ressource->setAttr(Ressource::ATTR_TOWN, $this->formData['town']);
  74. $ressource->setAttr(Ressource::ATTR_POSTAL_CODE, $this->formData['post_code']);
  75. $ressource->setAttr(Ressource::ATTR_COUNTY, $this->formData['county']);
  76. $ressource->setAttr(Ressource::ATTR_STATE, $this->formData['state']);
  77. $ressource->setAttr(Ressource::ATTR_AUTO, $this->formData['auto_accept']);
  78. $ressource->setAttr(Ressource::ATTR_BUSY, $this->formData['auto_busy']);
  79. foreach($this->productManager->getZimbraConfiguration() as $key => $value)
  80. {
  81. $value = $value === ProductParams::SWITCHER_ENABLED ? Zimbra::ATTR_ENABLED : Zimbra::ATTR_DISABLED;
  82. $ressource->setAttr($key, $value);
  83. }
  84. return $ressource;
  85. }
  86. }