403Webshell
Server IP : 54.94.228.101  /  Your IP : 172.28.1.13
Web Server : Apache
System : Linux ip-172-28-29-189 6.5.0-1014-aws #14~22.04.1-Ubuntu SMP Thu Feb 15 15:27:06 UTC 2024 x86_64
User : www-data ( 33)
PHP Version : 7.2.34-43+ubuntu22.04.1+deb.sury.org+1
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/html/vinumday2_0/app/Http/Controllers/Website/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/vinumday2_0/app/Http/Controllers/Website/ContatoController.php
<?php

namespace App\Http\Controllers\Website;

use App\Http\Requests;
use Illuminate\Http\Request;
use App\Http\Controllers\BaseController;

use App\Modules\Contato\Models\Contato;
use App\Modules\Oferta\Models\Oferta;
use App\Modules\Produto\Models\Produto;
use App\Modules\ProdutoVariacaoAtributo\Models\ProdutoVariacaoAtributo;

use DB;

use App\Services\GeralService;

use Notification;
use App\Notifications\NotificacaoContato;
use App\User;

class ContatoController extends BaseController
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * Show the application dashboard.
     *
     * @return \Illuminate\Http\Response
     */

    public function index(Request $request)
    {
        $data['titulo_pagina']    = 'Fale';
        $data['subtitulo_pagina'] = 'Conosco';

        $data['clienteLogado'] = GeralService::buscarClienteLogado();

        if($request->input('oferta') && !empty($request->input('oferta'))){
            $oferta   = Oferta::where('id', $request->input('oferta'))->first();

            if($request->input('produto')){
                $produto = Produto::where('id', $request->input('produto'))->first();
                $assunto = "Avise-me quando tiver disponível {$produto->nome}";
                $mensagem = "Tenho interesse em adquirir ".$request->input('quantidade')." unidade(s) da oferta {$produto->nome}, avise-me quando tiver disponível!";
            }elseif($request->input('tamanho')){
                $tamanho = ProdutoVariacaoAtributo::where('id', $request->input('tamanho'))->first();
                $modelo  = ProdutoVariacaoAtributo::where('id', $request->input('modelo'))->first();
                $assunto = "Avise-me quando tiver disponível {$oferta->titulo} {$oferta->sub_titulo}";
                if($tamanho){
                    $assunto .= " - Tam. {$tamanho->nome}";
                }
                if($modelo){
                    $assunto .= " - Mod. {$modelo->nome}";
                }
                $ofertaNome = "{$oferta->titulo} {$oferta->sub_titulo} - Tam. {$tamanho->nome} - Mod. {$modelo->nome}";
                $mensagem   = "Tenho interesse em adquirir ".$request->input('quantidade')." unidade(s) da oferta {$ofertaNome}, avise-me quando tiver disponível!";
            }else{
                $assunto  = "Verificar disponibilidade {$oferta->titulo} {$oferta->sub_titulo}";
                $mensagem = "Tenho interesse em adquirir (quantidade garrafas), favor verificar a disponibilidade";
            }
        }

        $data['assunto']   = isset($assunto) ? $assunto : '';
        $data['mensagem'] = isset($mensagem) ? $mensagem : '';

        return view('site/contato', $data);
    }

    public function enviarMensagem(Request $request){

        $post         = $request->input();
        $id_cliente   = hexdec( substr(sha1($post['email']), 0, 15) );
        $errorMessage = 'Não foi possível enviar a mensagem. Favor enviar um e-mail para contato@vinumday.com.br';

        foreach ($post as $key => $value) {
            if(empty($value)){
                $json = array(
                    'status'  => false,
                    'message' => "Campo '{$key}' deve ser preenchido."
                );
                return response()->json($json);
                break;
            }else{
                $value      = trim($value);
                $value      = str_replace(['?','"','$'], '', $value);
                $post[$key] = $value;
            }
        }

        try {

            $pessoa = [
               'id' => $id_cliente,
               "isActive" => 'true',
               "personType" => 1,
               "profileType" => 2,
               "businessName" => $post['nome'],
               "emails" => [
                    0 => [
                        'emailType' => 'Pessoal',
                        'email' =>$post['email'],
                        'isDefault' => true,
                    ]
                ],
               "phone" => $post['telefone'],
               "accessProfile" => "Clientes",
            ];

            $result = json_decode(GeralService::callMovideskAPI('persons', $pessoa, 'POST'));



            $data = [
                'type' => 2,
                'subject' => $post['assunto'],
                'status' => 'Novo',
                'createdBy' => [
                   'id' => $id_cliente,
                   "personType" => 1,
                   "profileType" => 2,
                   "businessName" => $post['nome'],
                   "email" => $post['email'],
                   "phone" => $post['telefone']
                ],
                'clients' => [
                    0 => [
                       'id' => $id_cliente,
                       "personType" => 1,
                       "profileType" => 2,
                       "businessName" => $post['nome'],
                       "email" => $post['email'],
                       "phone" => $post['telefone']
                    ]
                  
                ],
                'actions' => [
                    0 => [
                        'type' => 2,
                        'origin' => 8,
                        'description' => $post['mensagem']
                    ]
                ]
            ];

    


            $resultTicket = json_decode(GeralService::callMovideskAPI('tickets', $data, 'POST'));


            if(is_object($resultTicket) && isset($resultTicket->id)){
                $json = array(
                    'status' => true,
                    'message' => 'E-mail enviado com sucesso! Em breve entraremos em contato.'
                );
            }else{
                $json = array(
                    'status'  => false,
                    'message' => $errorMessage
                );
            }

            $cliente = GeralService::buscarClienteLogado();

            $contato = new Contato();
            $contato->fill($post);
            if ($cliente) {
                $contato->id_cliente = $cliente->id;
            }
            $contato->save();

            /*
            \Mail::send('emails.contato', $post, function ($m) use ($post){
                $m->from($post['email'], $post['nome']);//env('MAIL_USERNAME')
                $m->to('contato@vinumday.com.br')->subject('Contato do Site');
                $m->cc('murilo@bf2tecnologia.com.br')->subject('Contato do Site');
            });
            */
            
        } catch (\Exception $e) {
            //print_r($e->getMessage());die();
            $json = array(
                'status'  => false,
                'message' => $errorMessage
            );
        }

        //envia email alertando em caso de falhas
        if($json['status'] == false){
            $user = User::where('email', 'contato@vinumday.com.br')->first();
            Notification::send(
                $user, 
                new NotificacaoContato(
                    $post,
                    'Falha ao salvar contato pelo site',
                    url('contato')
                )
            );
        }

        return response()->json($json);
    }

}

Youez - 2016 - github.com/yon3zu
LinuXploit