|
1 | 1 | let axios = require('axios'); |
2 | 2 | let Input = require('./Input'); |
3 | 3 | let {API, ERRORS, MAX_BATCH_SIZE, replaceVars} = require('./constants'); |
4 | | -let {INPUT_PATH, INPUTS_PATH, INPUTS_STATUS_PATH, SEARCH_PATH} = API; |
| 4 | +let {INPUT_PATH, INPUTS_PATH, INPUTS_STATUS_PATH, SEARCH_PATH, SEARCH_FEEDBACK_PATH} = API; |
5 | 5 | let {wrapToken, formatInput, formatImagesSearch, formatConceptsSearch} = require('./utils'); |
6 | 6 | let {isSuccess, checkType, clone} = require('./helpers'); |
7 | 7 |
|
@@ -294,6 +294,32 @@ class Inputs { |
294 | 294 | }); |
295 | 295 | } |
296 | 296 |
|
| 297 | + searchFeedback(inputID, searchID, endUserID, sessionID) { |
| 298 | + let url = `${this._config.basePath}${SEARCH_FEEDBACK_PATH}`; |
| 299 | + const body = { |
| 300 | + input: { |
| 301 | + id: inputID, |
| 302 | + feedback_info: { |
| 303 | + event_type: 'search_click', |
| 304 | + search_id: searchID, |
| 305 | + end_user_id: endUserID, |
| 306 | + session_id: sessionID |
| 307 | + } |
| 308 | + } |
| 309 | + }; |
| 310 | + return wrapToken(this._config, headers => { |
| 311 | + return new Promise((resolve, reject) => { |
| 312 | + axios.post(url, body, { |
| 313 | + headers |
| 314 | + }).then(({data}) => { |
| 315 | + const d = clone(data); |
| 316 | + d.rawData = clone(data); |
| 317 | + resolve(d); |
| 318 | + }, reject); |
| 319 | + }); |
| 320 | + }); |
| 321 | + } |
| 322 | + |
297 | 323 | /** |
298 | 324 | * Get inputs status (number of uploaded, in process or failed inputs) |
299 | 325 | * @return {Promise(response, error)} A Promise that is fulfilled with the API response or rejected with an error |
|
0 commit comments