<?php
namespace App\Library;
require_once dirname(__DIR__, 2) . '/vendor/autoload.php';
use App\Core\Service\Logger;
use Razorpay\Api\Api;  

require 'vendor/autoload.php';

class Razorpay  
{   
    private $api;

    public function __construct(Array $settings) {
        $key_id = !empty($settings['key'])?$settings['key']:NULL;
        $key_secret = !empty($settings['secret'])?$settings['secret']:NULL;
        if(!empty($key_id) && !empty($key_secret)) {
            $this->api = new Api($key_id, $key_secret);
        }
    }

    public function createOrder($order_id, $amount, $currency='INR') {
        try {
            $resp = $this->api->order->create([
                'receipt'=> "$order_id",
                'amount'=> $amount, 
                'currency'=> $currency, 
                'payment_capture'=>'0'
            ]);
            if(empty($resp)) {
                throw new \Exception("No response from Razorpay Create Order API");
            }
            if(empty($resp['id'])) {
                throw new \Exception("Unable to get Order Id from Razorpay Create Order API");
            }
            return ['status' => true, 'data' => $resp['id']];
        } catch(\Exception $e) {
            Logger::error($e->getMessage(), ['File' => $e->getFile(), 'Line'=>$e->getLine()]);
            return ['status' => false, 'error' => $e->getMessage()];
        }
    }
    
}