UpdateRessource.php 3.6 KB

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