| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- <?php
- namespace cx_newsletter;
- class send_message_activity
- extends activity {
- public function show_after_button() : string {
- return 'send_via_email';
- }
- public function inside_buttons() : array {
- return [ 'send_via_sms', 'test_via_email', 'test_via_sms' ];
- }
- public function init_inputs() : array {
- return [
- 'id' => 'int'
- ];
- }
- public function inside_inputs() : array {
- return $this->init_inputs();
- }
- public function get_site_template_name() : string {
- return 'send_message';
- }
- public function process() : self {
- if (!$this->is_validated('id')) {
- $this->error_toast('Message ID is not valid.');
- }
- try {
- $mapper = new messages_mapper(
- $this->get_database(),
- $this->get_tables()
- );
- $message = new message($this->get_validated('id'));
- $message = $mapper->complete($message);
- $builder = new campaign_builder();
-
- $builder->set_test();
-
- if ($this->is_received('send_via_sms')) {
- $builder->set_test(false);
- }
- if ($this->is_received('send_via_email')) {
- $builder->set_test(false);
- }
- $builder->set_type(campaign_type::email);
- if ($this->is_received('send_via_sms')) {
- $builder->set_type(campaign_type::sms);
- }
- if ($this->is_received('test_via_sms')) {
- $builder->set_type(campaign_type::sms);
- }
- $builder->set_message($message);
- if ($this->get_received('group') !== 'NULL') {
- $group = new group(intval($this->get_received('group')));
- $builder->set_group($group);
- }
- if (!$builder->is_complete()) {
- throw new \exception('Builder is yet not complete.');
- }
- $campaign = $builder->get();
- $repository = new campaigns_repository(
- $this->get_database(),
- $this->get_tables()
- );
- $repository->create($campaign);
- $this->success_toast('Start sending it...');
- } catch (\exception $exception) {
- $this->error_toast($exception->getMessage());
- }
- return $this;
- }
- }
|