//sanitize the vendor name $vendorName = filter_input(INPUT_GET, "vendorName", FILTER_SANITIZE_STRING); // grab the mySQL connection $pdo = connectToEncryptedMySql("/etc/apache2/capstone-mysql/invtext.ini"); // handle all RESTful calls to Vendor // get some or all Vendors if ($method === "GET") { // set an XSRF cookie on GET requests setXsrfCookie("/"); if (empty($vendorId) === false) { $reply->data = Vendor::getVendorByVendorId($pdo, $vendorId); } else { if (empty($vendorName) === false) { $reply->data = Vendor::getVendorByVendorName($pdo, $vendorName)->toArray(); } else { $reply->data = Vendor::getAllVendors($pdo)->toArray(); } } // post to a new Vendor } else { if ($method === "POST") { // convert POSTed JSON to an object verifyXsrf(); $requestContent = file_get_contents("php://input"); $requestObject = json_decode($requestContent); $vendor = new Vendor(null, $requestObject->contactName, $requestObject->vendorEmail, $requestObject->vendorName, $requestObject->vendorPhoneNumber); $vendor->insert($pdo); $reply->data = "Vendor created OK"; // delete an existing Vendor } else { if ($method === "DELETE") {
/** * test grabbinbg all Vendors **/ public function testGetAllValidVendors() { //count the number of rows and save it for later $numRows = $this->getConnection()->getRowCount("vendor"); //create a new vendor and insert it into mySQL $vendor = new Vendor(null, $this->VALID_contactName, $this->VALID_vendorEmail, $this->VALID_vendorName, $this->VALID_vendorPhoneNumber); $vendor->insert($this->getPDO()); // grab the data from mySQL and enforce the fields match our expectations $pdoVendor = Vendor::getAllVendors($this->getPDO()); foreach ($pdoVendor as $ven) { $this->assertSame($numRows + 1, $this->getConnection()->getRowCount("vendor")); $this->assertSame($ven->getContactName(), $this->VALID_contactName); $this->assertSame($ven->getVendorEmail(), $this->VALID_vendorEmail); $this->assertSame($ven->getVendorName(), $this->VALID_vendorName); $this->assertSame($ven->getVendorPhoneNumber(), $this->VALID_vendorPhoneNumber); } }