Commit eec81c4c1e8fc16c52a6484b7c4398d17f16e6bf

Authored by Kevin Cyster
1 parent 711a0eca

Added webservice functions for saved searches

Committed By: Kevin Cyster

Reviewed By: Megan Watson
Showing 1 changed file with 198 additions and 28 deletions
ktapi/ktapi.inc.php
... ... @@ -286,7 +286,7 @@ class KTAPI
286 286 "status_code" => 0,
287 287 "results" => $permissions->permissions
288 288 );
289   -
  289 +
290 290 }
291 291  
292 292 /**
... ... @@ -752,13 +752,13 @@ class KTAPI
752 752 if (is_null($rows) || PEAR::isError($rows))
753 753 {
754 754 $response['status_code'] = 1;
755   - if(is_null($rows))
  755 + if(is_null($rows))
756 756 {
757 757 $response['message'] = "No types";
758 758 } else {
759 759 $response['message'] = $rows->getMessage();
760 760 }
761   -
  761 +
762 762 return $response;
763 763 }
764 764 else
... ... @@ -2309,10 +2309,10 @@ class KTAPI
2309 2309 $response['message'] = $result->getMessage();
2310 2310 return $response;
2311 2311 }
2312   -
  2312 +
2313 2313 $new_document_id = $result->documentid;
2314 2314 return $this->get_document_detail($new_document_id, '');
2315   -
  2315 +
2316 2316 }
2317 2317  
2318 2318 /**
... ... @@ -2354,12 +2354,12 @@ class KTAPI
2354 2354 $response['message'] = $result->getMessage();
2355 2355 return $response;
2356 2356 }
2357   -
  2357 +
2358 2358 }
2359 2359  
2360   -
  2360 +
2361 2361 return $this->get_document_detail($document_id, '');
2362   -
  2362 +
2363 2363 }
2364 2364  
2365 2365 /**
... ... @@ -2386,10 +2386,10 @@ class KTAPI
2386 2386 $response['message'] = $result->getMessage();
2387 2387 return $response;
2388 2388 }
2389   -
2390   -
  2389 +
  2390 +
2391 2391 return $this->get_document_detail($document_id);
2392   -
  2392 +
2393 2393 }
2394 2394  
2395 2395 /**
... ... @@ -2416,9 +2416,9 @@ class KTAPI
2416 2416 $response['message'] = $result->getMessage();
2417 2417 return $response;
2418 2418 }
2419   -
  2419 +
2420 2420 return $this->get_document_detail($document_id);
2421   -
  2421 +
2422 2422 }
2423 2423  
2424 2424 /**
... ... @@ -2446,11 +2446,11 @@ class KTAPI
2446 2446 $response['message'] = $result->getMessage();
2447 2447 return $response;
2448 2448 }
2449   -
2450 2449  
2451   -
  2450 +
  2451 +
2452 2452 return $this->get_document_detail($document_id);
2453   -
  2453 +
2454 2454 }
2455 2455  
2456 2456 /**
... ... @@ -2477,7 +2477,7 @@ class KTAPI
2477 2477 $response['message'] = $result->getMessage();
2478 2478 return $response;
2479 2479 }
2480   -
  2480 +
2481 2481  
2482 2482 return $this->get_document_detail($document_id);
2483 2483 }
... ... @@ -2505,8 +2505,8 @@ class KTAPI
2505 2505 $response['message'] = $result->getMessage();
2506 2506 return $response;
2507 2507 }
2508   -
2509   -
  2508 +
  2509 +
2510 2510 return $this->get_document_detail($document_id);
2511 2511 }
2512 2512  
... ... @@ -2535,9 +2535,9 @@ class KTAPI
2535 2535 $response['message'] = $result>getMessage();
2536 2536 return $response;
2537 2537 }
2538   -
  2538 +
2539 2539 return $this->get_document_detail($document_id);
2540   -
  2540 +
2541 2541 }
2542 2542  
2543 2543  
... ... @@ -2581,7 +2581,7 @@ class KTAPI
2581 2581 $metadata[$i]['fields'][$j]['selection'] = $new;
2582 2582 }
2583 2583 }
2584   -
  2584 +
2585 2585 $response['status_code'] = 0;
2586 2586 $response['result'] = $metadata;
2587 2587 return $response;
... ... @@ -2623,7 +2623,7 @@ class KTAPI
2623 2623 }
2624 2624  
2625 2625 return $this->get_document_detail($document_id, 'M');
2626   -
  2626 +
2627 2627 }
2628 2628  
2629 2629 /**
... ... @@ -2714,7 +2714,7 @@ class KTAPI
2714 2714 $response['history'] = $result;
2715 2715 return $response;
2716 2716 }
2717   -
  2717 +
2718 2718 /**
2719 2719 * Returns the folder transaction history.
2720 2720 *
... ... @@ -2957,7 +2957,7 @@ class KTAPI
2957 2957 function search($query, $options)
2958 2958 {
2959 2959 $response['status_code'] = 1;
2960   - $response['hits'] = array();
  2960 + $response['results'] = array();
2961 2961  
2962 2962 $results = processSearchExpression($query);
2963 2963 if (PEAR::isError($results))
... ... @@ -2967,15 +2967,185 @@ class KTAPI
2967 2967 }
2968 2968  
2969 2969 $response['message'] = '';
  2970 + if(empty($results)){
  2971 + $response['message'] = _kt('Your search did not return any results');
  2972 + }
2970 2973 $response['status_code'] = 0;
2971   - $response['hits'] = $results;
  2974 + $response['results'] = $results;
2972 2975  
2973 2976 return $response;
2974 2977 }
2975 2978  
  2979 + /**
  2980 + * Method to create a saved search
  2981 + *
  2982 + * @author KnowledgeTree Team
  2983 + * @access public
  2984 + * @param string $name The name of the saved search
  2985 + * @param string $query The saved search query
  2986 + * @return array $response The formatted response array
  2987 + */
  2988 + public function createSavedSearch($name, $query)
  2989 + {
  2990 + $savedSearch = new savedSearches($this);
  2991 + if(PEAR::isError($savedSearch)){
  2992 + $response['status_code'] = 1;
  2993 + $response['message'] = $savedSearch->getMessage();
  2994 + return $response;
  2995 + }
  2996 +
  2997 + $result = $savedSearch->create($name, $query);
  2998 + if(PEAR::isError($result)){
  2999 + $response['status_code'] = 1;
  3000 + $response['message'] = $result->getMessage();
  3001 + return $response;
  3002 + }
  3003 +
  3004 + $response['message'] = '';
  3005 + $response['status_code'] = 0;
  3006 + $response['results']['search_id'] = $result;
  3007 +
  3008 + return $response;
  3009 + }
  3010 +
  3011 + /**
  3012 + * Method to retrieve a saved search
  3013 + *
  3014 + * @author KnowledgeTree Team
  3015 + * @access public
  3016 + * @param string $searchID The id of the saved search
  3017 + * @return array $response The formatted response array
  3018 + */
  3019 + public function getSavedSearch($searchID)
  3020 + {
  3021 + $savedSearch = new savedSearches($this);
  3022 + if(PEAR::isError($savedSearch)){
  3023 + $response['status_code'] = 1;
  3024 + $response['message'] = $savedSearch->getMessage();
  3025 + return $response;
  3026 + }
  3027 +
  3028 + $result = $savedSearch->getSavedSearch($searchID);
  3029 + if(PEAR::isError($result)){
  3030 + $response['status_code'] = 1;
  3031 + $response['message'] = $result->getMessage();
  3032 + return $response;
  3033 + }
  3034 +
  3035 + if(empty($result)){
  3036 + $response['status_code'] = 1;
  3037 + $response['message'] = _kt('No saved searches found');
  3038 + return $response;
  3039 + }
  3040 +
  3041 + $response['message'] = '';
  3042 + $response['status_code'] = 0;
  3043 + $response['results'] = $result[0];
  3044 +
  3045 + return $response;
  3046 + }
  3047 +
  3048 + /**
  3049 + * Method to retrieve a list of saved searches
  3050 + *
  3051 + * @author KnowledgeTree Team
  3052 + * @access public
  3053 + * @return array $response The formatted response array
  3054 + */
  3055 + public function getSavedSearchList()
  3056 + {
  3057 + $savedSearch = new savedSearches($this);
  3058 + if(PEAR::isError($savedSearch)){
  3059 + $response['status_code'] = 1;
  3060 + $response['message'] = $savedSearch->getMessage();
  3061 + return $response;
  3062 + }
  3063 +
  3064 + $result = $savedSearch->getList();
  3065 + if(PEAR::isError($result)){
  3066 + $response['status_code'] = 1;
  3067 + $response['message'] = $result->getMessage();
  3068 + return $response;
  3069 + }
  3070 +
  3071 + if(empty($result)){
  3072 + $response['status_code'] = 1;
  3073 + $response['message'] = _kt('No saved searches found');
  3074 + return $response;
  3075 + }
  3076 +
  3077 + $response['message'] = '';
  3078 + $response['status_code'] = 0;
  3079 + $response['results'] = $result;
  3080 +
  3081 + return $response;
  3082 + }
  3083 +
  3084 + /**
  3085 + * Method to delete a saved searche
  3086 + *
  3087 + * @author KnowledgeTree Team
  3088 + * @access public
  3089 + * @param string $searchID The id of the saved search to delete
  3090 + * @return array $response The formatted response array
  3091 + */
  3092 + public function deleteSavedSearch($searchID)
  3093 + {
  3094 + $savedSearch = new savedSearches($this);
  3095 + if(PEAR::isError($savedSearch)){
  3096 + $response['status_code'] = 1;
  3097 + $response['message'] = $savedSearch->getMessage();
  3098 + return $response;
  3099 + }
  3100 +
  3101 + $result = $savedSearch->delete($searchID);
  3102 + if(PEAR::isError($result)){
  3103 + $response['status_code'] = 1;
  3104 + $response['message'] = $result->getMessage();
  3105 + return $response;
  3106 + }
  3107 +
  3108 + $response['message'] = '';
  3109 + $response['status_code'] = 0;
  3110 +
  3111 + return $response;
  3112 + }
  3113 +
  3114 + /**
  3115 + * Method to retrieve a list of saved searches
  3116 + *
  3117 + * @author KnowledgeTree Team
  3118 + * @access public
  3119 + * @param string $searchID The id of the saved search to delete
  3120 + * @return array $response The formatted response array
  3121 + */
  3122 + public function runSavedSearch($searchID)
  3123 + {
  3124 + $savedSearch = new savedSearches($this);
  3125 + if(PEAR::isError($savedSearch)){
  3126 + $response['status_code'] = 1;
  3127 + $response['message'] = $savedSearch->getMessage();
  3128 + return $response;
  3129 + }
  3130 +
  3131 + $results = $savedSearch->runSavedSearch($searchID);
  3132 + if(PEAR::isError($results)){
  3133 + $response['status_code'] = 1;
  3134 + $response['message'] = $results->getMessage();
  3135 + return $response;
  3136 + }
  3137 +
  3138 + $response['message'] = '';
  3139 + if(empty($results)){
  3140 + $response['message'] = _kt('Your saved search did not return any results');
  3141 + }
  3142 + $response['status_code'] = 0;
  3143 + $response['results'] = $results;
  3144 +
  3145 + return $response;
  3146 + }
2976 3147 }
2977   -
2978   -
  3148 +
2979 3149  
2980 3150 /**
2981 3151 * This class handles the saved search functionality within the API
... ...