middleware('auth'); $this->_service = 'communication'; $this->_module = 'channel'; $this->_viewname = 'commchannel'; $this->_title = 'Communication Channels'; $this->_base_url = '/communicationchannel'; } protected function get_list_fields() { return [ 'actions' => ['title' => 'Actions', 'buttons' => ['edit', 'delete']], 'name' => ['title' => 'Channel Name', 'type' => 'text'], 'type' => ['title' => 'Type', 'type' => 'text'], 'status' => ['title' => 'Status', 'type' => 'select'], ]; } protected function get_form_fields($type, $values) { $bots = $this->getlambda('get', 'communication', 'comm_bot', 'dropdown'); $bots_dd = []; foreach ($bots->data->items as $bot) { $bots_dd[$bot->id] = $bot->name; } return [ 'name' => ['title' => 'Channel Name', 'type' => 'text', 'required' => true], 'number' => ['title' => 'Sender Number', 'type' => 'text', 'required' => true], 'status' => ['title' => 'Status', 'type' => 'select', 'required' => true, 'values' => ['active' => 'Active', 'disabled' => 'Disabled']], 'type' => ['title' => 'Channel Type', 'type' => 'select', 'required' => true, 'values' => ['whatsapp' => 'Whatsapp', 'email' => 'Email', 'sms' => 'SMS']], 'bot_id' => ['title' => 'Attached Bot', 'type' => 'select', 'values' => $bots_dd], 'credentials' => ['title' => 'Credentials', 'type' => 'textarea', 'required' => true, 'fullwidth' => true], //'api_secret' => ['title' => 'API Secret', 'type' => 'text', 'required' => true], 'minute' => ['title' => 'Limits in Minutes', 'type' => 'number', 'required' => false], 'hour' => ['title' => 'Limits in Hours', 'type' => 'number', 'required' => false], 'day' => ['title' => 'Limits in Days', 'type' => 'number', 'required' => false], 'week' => ['title' => 'Limits in Weeks', 'type' => 'number', 'required' => false], 'month' => ['title' => 'Limits in Months', 'type' => 'number', 'required' => false], ]; } // public function form($type, $id = null) // { // $values = []; // if ($type == 'edit') { // $response = LambdaRequest::signedrequest('get', $this->_service, $this->_module . '/get_one', ['id' => $id]); // // echo '
'; print_r($response); exit; 
    //         $values = $response->data->item; 
    //     }
    //     $data = $this->_beforeform($type, $values);
    //     $fields = $this->get_form_fields($type, $values);
    //     echo '
'; print_r($data); exit;
    //     return $this->view('form')->with([
    //         'title' => $this->_title,
    //         'mode' => $type,
    //         'fields' => $fields,
    //         'base_url' => $this->_base_url,
    //         'item' => $values,
    //     ]);
    // }

    protected function _beforeform($type, $values) {
        if($type == 'edit') {
            $values->credentials = json_encode($values->credentials);
            $values->minute = $values->limits->minute;
            $values->day = $values->limits->day;
            $values->month = $values->limits->month;
            $values->hour = $values->limits->hour;
            $values->week = $values->limits->week;
        }
        return $values;
    }

    protected function _beforesave($type, $request)
    {
        $data = $request->except('_token');

        // $credentials = new stdClass();
        // $credentials->api_key = $data["api_key"];
        // $credentials->api_secret = $data["api_secret"];
        // unset($data["api_key"]);
        // unset($data["api_secret"]);
        $data["credentials"] = json_decode($data["credentials"]);

        $limits = new stdClass();
        $limits->minute = $data["minute"];
        $limits->hour = $data["hour"];
        $limits->day = $data["day"];
        $limits->week = $data["week"];
        $limits->month = $data["month"];
        unset($data["minute"]);
        unset($data["hour"]);
        unset($data["day"]);
        unset($data["week"]);
        unset($data["month"]);
        $data["limits"] = $limits;

        //echo '
'; print_r($data); exit;
        return $data;
    }
}