createRequest(relativeEndpoint, method, data) {
    let URL = this.rootEndpoint + relativeEndpoint
    let body
    if (typeof data === 'string') {
      URL += URL.includes('?') ? '&qnaformat=true' : '?qnaformat=true'
      this.headers['Content-Type'] = 'application/text'
      body = data
    } else if (typeof data === 'object') {
      this.headers['Content-Type'] = 'application/json'
      body = JSON.stringify(data)
    }
    
    return fetch(URL, {headers: this.headers, method, body})
  }
Creates a request to the specified endpoint and returns
a promise.

@param {string} relativeEndpoint The relative endpoint for the request
@param {'get'|'post'|'put'|'PATCH'|'delete'} method The method for the request
@param {any} data The request data
@returns {Promise<Response>} The promise representing the request