function createApiRequestFactory(defaultMethod) {
  return function(endpoint, payload = {}) {
    return {
      method: defaultMethod,
      endpoint: endpoint,
      payload: payload,
      getRequestDetails() {
        return {
          method: this.method,
          endpoint: this.endpoint,
          payload: this.payload
        };
      }
    };
  };
}

const createGetRequest = createApiRequestFactory('GET');
const createPostRequest = createApiRequestFactory('POST');

const getRequest = createGetRequest('/users');
const postRequest = createPostRequest('/users', { name: 'John Doe', age: 30 });

console.log(getRequest.getRequestDetails()); // Output: { method: 'GET', endpoint: '/users', payload: {} }
console.log(postRequest.getRequestDetails()); // Output: { method: 'POST', endpoint: '/users', payload: { name: 'John Doe', age: 30 } }