export function submitReview()

in src/amo/api/reviews.js [63:105]


export function submitReview({
  addonId,
  score,
  apiState,
  versionId,
  body,
  reviewId,
  ...apiCallParams
}: SubmitReviewParams): Promise<SubmitReviewResponse> {
  return new Promise((resolve) => {
    const review = {
      addon: undefined,
      score,
      version: versionId,
      body,
    };
    let method = 'POST';
    let endpoint = 'ratings/rating';

    if (reviewId) {
      endpoint = `${endpoint}/${reviewId}`;
      method = 'PATCH';
      // You cannot update the version of an existing review.
      review.version = undefined;
    } else {
      if (!addonId) {
        throw new Error('addonId is required when posting a new review');
      }
      review.addon = addonId;
    }

    resolve(
      callApi({
        endpoint,
        body: review,
        method,
        auth: true,
        apiState,
        ...apiCallParams,
      }),
    );
  });
}