001package com.plivo.api.models.callfeedback;
002
003import com.plivo.api.models.base.Creator;
004import com.plivo.api.util.Utils;
005import retrofit2.Call;
006
007import java.util.List;
008
009public class CallFeedbackCreator extends Creator<CallFeedbackCreateResponse> {
010
011  private String callUUID;
012  private Float rating;
013  private List<String> issues;
014  private String notes;
015
016  CallFeedbackCreator(String callUUID, Float rating) {
017    if (!Utils.allNotNull(callUUID, rating)) {
018      throw new IllegalArgumentException("callUUID or rating cannot be null");
019    }
020    if (rating < 1 && rating > 5) {
021      throw new IllegalArgumentException("Rating has to be a float between 1 - 5");
022    }
023    this.callUUID = callUUID;
024    this.rating = rating;
025  }
026
027  public CallFeedbackCreator issues(final List<String> issues){
028    this.issues = issues;
029    return this;
030  }
031
032  public CallFeedbackCreator notes(final String notes){
033    this.notes = notes;
034    return this;
035  }
036
037  @Override
038  protected Call<CallFeedbackCreateResponse> obtainCall() {
039    return client().getCallInsightsAPIService().callFeedbackCreate(callUUID, this);
040  }
041
042}