diff --git a/app/controllers/api/v1/accounts/csat_survey_responses_controller.rb b/app/controllers/api/v1/accounts/csat_survey_responses_controller.rb index 4439fcdfa..26de6d406 100644 --- a/app/controllers/api/v1/accounts/csat_survey_responses_controller.rb +++ b/app/controllers/api/v1/accounts/csat_survey_responses_controller.rb @@ -1,4 +1,5 @@ class Api::V1::Accounts::CsatSurveyResponsesController < Api::V1::Accounts::BaseController + include Sift include DateRangeHelper RESULTS_PER_PAGE = 25 @@ -9,6 +10,8 @@ class Api::V1::Accounts::CsatSurveyResponsesController < Api::V1::Accounts::Base before_action :set_current_page_surveys, only: [:index] before_action :set_total_sent_messages_count, only: [:metrics] + sort_on :created_at, type: :datetime + def index; end def metrics @@ -25,7 +28,9 @@ class Api::V1::Accounts::CsatSurveyResponsesController < Api::V1::Accounts::Base end def set_csat_survey_responses - @csat_survey_responses = Current.account.csat_survey_responses.includes([:conversation, :assigned_agent, :contact]) + @csat_survey_responses = filtrate( + Current.account.csat_survey_responses.includes([:conversation, :assigned_agent, :contact]) + ) @csat_survey_responses = @csat_survey_responses.where(created_at: range) if range.present? end diff --git a/app/javascript/dashboard/api/csatReports.js b/app/javascript/dashboard/api/csatReports.js index 9198dcc26..a8b8308bc 100644 --- a/app/javascript/dashboard/api/csatReports.js +++ b/app/javascript/dashboard/api/csatReports.js @@ -6,12 +6,16 @@ class CSATReportsAPI extends ApiClient { super('csat_survey_responses', { accountScoped: true }); } - get({ page } = {}) { - return axios.get(this.url, { params: { page } }); + get({ page, from, to } = {}) { + return axios.get(this.url, { + params: { page, since: from, until: to, sort: '-created_at' }, + }); } - getMetrics() { - return axios.get(`${this.url}/metrics`); + getMetrics({ from, to } = {}) { + return axios.get(`${this.url}/metrics`, { + params: { since: from, until: to }, + }); } } diff --git a/app/javascript/dashboard/api/specs/csatReports.spec.js b/app/javascript/dashboard/api/specs/csatReports.spec.js index 7b7c36c45..0022a91ad 100644 --- a/app/javascript/dashboard/api/specs/csatReports.spec.js +++ b/app/javascript/dashboard/api/specs/csatReports.spec.js @@ -11,18 +11,26 @@ describe('#Reports API', () => { }); describeWithAPIMock('API calls', context => { it('#get', () => { - csatReportsAPI.get({ page: 1 }); + csatReportsAPI.get({ page: 1, from: 1622485800, to: 1623695400 }); expect(context.axiosMock.get).toHaveBeenCalledWith( '/api/v1/csat_survey_responses', { - params: { page: 1 }, + params: { + page: 1, + since: 1622485800, + until: 1623695400, + sort: '-created_at', + }, } ); }); it('#getMetrics', () => { - csatReportsAPI.getMetrics(); + csatReportsAPI.getMetrics({ from: 1622485800, to: 1623695400 }); expect(context.axiosMock.get).toHaveBeenCalledWith( - '/api/v1/csat_survey_responses/metrics' + '/api/v1/csat_survey_responses/metrics', + { + params: { since: 1622485800, until: 1623695400 }, + } ); }); }); diff --git a/app/javascript/dashboard/routes/dashboard/settings/reports/CsatResponses.vue b/app/javascript/dashboard/routes/dashboard/settings/reports/CsatResponses.vue index 16ef752c2..184d85a99 100644 --- a/app/javascript/dashboard/routes/dashboard/settings/reports/CsatResponses.vue +++ b/app/javascript/dashboard/routes/dashboard/settings/reports/CsatResponses.vue @@ -1,5 +1,6 @@