aboutsummaryrefslogtreecommitdiff
path: root/bridges/NpciBridge.php
blob: 64dab909a8ada6e69b213e186fafc683eedd8ef0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<?php
class NpciBridge extends BridgeAbstract {

	const MAINTAINER = 'captn3m0';
	const NAME = 'NCPI Circulars';
	const URI = 'https://npci.org.in';
	const CACHE_TIMEOUT = 3600;
	const DESCRIPTION = 'Returns circulars from National Payments Corporation of India)';

	const URL_SUFFIX = [
		'cts' => 'circulars',
		'upi' => 'circular',
		'rupay' => 'circulars',
		'nach' => 'circulars',
		'imps' => 'circular',
		'netc-fastag' => 'circulars',
		'99' => 'circular',
		'nfs' => 'circulars',
		'aeps' => 'circulars',
		'bhim-aadhaar' => 'circular',
		'e-rupi' => 'circular',
		'Bharat QR' => 'circulars',
		'bharat-billpay' => 'circulars',
	];

	const PARAMETERS = [[
		'product' => [
			'name' => 'product',
			'type' => 'list',
			'values' => [
				'CTS' => 'cts',
				'UPI' => 'upi',
				'RuPay' => 'rupay',
				'NACH' => 'nach',
				'IMPS' => 'imps',
				'NETC FASTag' => 'netc-fastag',
				'*99#' => '99',
				'NFS' => 'nfs',
				'AePS' => 'aeps',
				'BHIM Aadhaar' => 'bhim-aadhaar',
				'e-RUPI' => 'e-rupi',
				'Bharat BillPay' => 'bharat-billpay'
			]
		]
	]];

	public function getName() {
		$product = $this->getInput('product');
		if ($product) {
			$productNameMap = array_flip(self::PARAMETERS[0]['product']['values']);
			$productName = $productNameMap[$product];
			return "NPCI Circulars: $productName";
		}

		return 'NPCI Circulars';
	}

	public function getURI(){
		$product = $this->getInput('product');
		return $product ? sprintf('%s/what-we-do/%s/%s', self::URI, $product, self::URL_SUFFIX[$product]) : self::URI;
	}

	public function collectData(){
		$html = getSimpleHTMLDOMCached($this->getURI());
		$year = date('Y');
		$elements = $html->find("div[id=year$year] .pdf-item");

		foreach($elements as $element) {
			$title = $element->find('p', 0)->innertext;

			$link = $element->find('a', 0);

			$uri = null;

			if ($link) {
				$pdfLink = $link->getAttribute('href');
				$uri = self::URI . str_replace(' ', '+', $pdfLink);
			}

			$item = [
				'uri' => $uri,
				'title' => $title,
				'content' => $title ,
				'uid' => sha1($pdfLink),
				'enclosures' => [
					$uri
				]
			];

			$this->items[] = $item;
		}

		$this->items = array_slice($this->items, 0, 15);
	}
}