|
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 | <?php function createAgencyDesignDoc() { global $sag; //See if the design doc exists, creating it if it doesn't try { //it does exist, so finish early if ($sag->head('_design/app')->headers->_HTTP->status != "404") return true; } catch(Exception $e) { //database issue return false; } $ddoc = new StdClass(); $ddoc->_id = '_design/app'; $ddoc->views = new StdClass(); // by abn, by name $ddoc->views->byABN = new StdClass(); $ddoc->views->byABN->map = "function(doc) { emit(doc.ABN, doc); };"; $ddoc->views->byName = new StdClass(); $ddoc->views->byName->map = "function(doc) { emit(doc.name, doc); };"; $ddoc->views->getActive = new StdClass(); $ddoc->views->getActive->map = 'function(doc) { if (doc.status == "active") { emit(doc._id, doc); } };'; $ddoc->views->getSuspended = new StdClass(); $ddoc->views->getSuspended->map = 'function(doc) { if (doc.status == "suspended") { emit(doc._id, doc); } };'; $ddoc->views->getScrapeRequired = new StdClass(); $ddoc->views->getScrapeRequired->map = "function(doc) { emit(doc.ABN, doc); };"; try { $sag->put('_design/app', $ddoc); } catch(Exception $e) { /* * A 409 status code means there was a conflict, so another client * already created the design doc for us. This is fine. */ if ($e->getCode() != 409) return false; } return true; } require_once 'sag/src/Sag.php'; $sag = new Sag(); $sag->setDatabase("disclosr-agencies", true); //get an agency record as json/html, search by name/abn/id // by name = startkey="Ham"&endkey="Ham\ufff0" // edit? createAgencyDesignDoc(); $rows = $sag->get('/_design/app/_view/byABN?include_docs=true')->body->rows; // &endkey='.$searchVar foreach ($rows as $row) { echo "<table>"; echo '<tr> <td colspan="2"><h3>' . $row->doc->agencyName. "</h3></td></tr>"; echo "<tr><th>Field Name</th><th>Field Value</th></tr>"; foreach ($row->doc as $key => $value) { echo "<tr><td>$key</td><td>$value</td></tr>"; } // also show documents/URLs available echo "</table>"; } |