Implement saving queries.
Summary: Enable saved query objects to actually be saved to the database. Test Plan: Insert a call to save() and check that the query is written correctly. Reviewers: epriestley Reviewed By: epriestley CC: aran, Korvin, AnhNhan Maniphest Tasks: T2625 Differential Revision: https://secure.phabricator.com/D5775 Conflicts: src/infrastructure/storage/patch/PhabricatorBuiltinPatchList.php
This commit is contained in:
		 Bryan Cuccioli
					Bryan Cuccioli
				
			
				
					committed by
					
						 epriestley
						epriestley
					
				
			
			
				
	
			
			
			 epriestley
						epriestley
					
				
			
						parent
						
							c7be6f4aa1
						
					
				
				
					commit
					7ad2eae47f
				
			
							
								
								
									
										11
									
								
								resources/sql/patches/20130426.search_savedquery.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								resources/sql/patches/20130426.search_savedquery.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | ||||
| CREATE TABLE {$NAMESPACE}_search.search_savedquery ( | ||||
|   id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, | ||||
|   engineClassName VARCHAR(255) NOT NULL COLLATE utf8_bin, | ||||
|   parameters LONGTEXT NOT NULL COLLATE utf8_bin, | ||||
|   dateCreated INT(10) UNSIGNED NOT NULL, | ||||
|   dateModified INT(10) UNSIGNED NOT NULL, | ||||
|   queryKey VARCHAR(12) NOT NULL COLLATE utf8_bin, | ||||
|   PRIMARY KEY(id), | ||||
|   UNIQUE KEY key_queryKey (queryKey) | ||||
| ) | ||||
| ENGINE=InnoDB, COLLATE utf8_general_ci | ||||
| @@ -6,6 +6,8 @@ | ||||
| final class PhabricatorSavedQuery extends PhabricatorSearchDAO { | ||||
|  | ||||
|   protected $parameters = array(); | ||||
|   protected $queryKey = ""; | ||||
|   protected $engineClassName = "PhabricatorPasteSearchEngine"; | ||||
|  | ||||
|   public function getConfiguration() { | ||||
|     return array( | ||||
| @@ -22,4 +24,15 @@ final class PhabricatorSavedQuery extends PhabricatorSearchDAO { | ||||
|   public function getParameter($key, $default = null) { | ||||
|     return idx($this->parameters, $key, $default); | ||||
|   } | ||||
|  | ||||
|   public function save() { | ||||
|     if ($this->getEngineClass() === null) { | ||||
|       throw new Exception(pht("Engine class is null.")); | ||||
|     } | ||||
|  | ||||
|     $serial = $this->getEngineClass().serialize($this->parameters); | ||||
|     $this->queryKey = PhabricatorHash::digestForIndex($serial); | ||||
|  | ||||
|     return parent::save(); | ||||
|   } | ||||
| } | ||||
|   | ||||
| @@ -1254,6 +1254,10 @@ final class PhabricatorBuiltinPatchList extends PhabricatorSQLPatchList { | ||||
|         'type' => 'sql', | ||||
|         'name' => $this->getPatchPath('20130423.conpherenceindices.sql'), | ||||
|       ), | ||||
|       '20130426.search_savedquery.sql' => array( | ||||
|         'type' => 'sql', | ||||
|         'name' => $this->getPatchPath('20130426.search_savedquery.sql'), | ||||
|       ), | ||||
|     ); | ||||
|   } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user