putBucketRequestPayment.js 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. const { checkBucketName: _checkBucketName } = require('../utils/checkBucketName');
  2. const { obj2xml } = require('../utils/obj2xml');
  3. const proto = exports;
  4. /**
  5. * putBucketRequestPayment
  6. * @param {String} bucketName
  7. * @param {String} payer
  8. * @param {Object} options
  9. */
  10. const payerAll = ['BucketOwner', 'Requester'];
  11. proto.putBucketRequestPayment = async function putBucketRequestPayment(
  12. bucketName,
  13. payer,
  14. options
  15. ) {
  16. options = options || {};
  17. if (!payer || payerAll.indexOf(payer) < 0) {
  18. throw new Error('payer must be BucketOwner or Requester');
  19. }
  20. _checkBucketName(bucketName);
  21. const params = this._bucketRequestParams(
  22. 'PUT',
  23. bucketName,
  24. 'requestPayment',
  25. options
  26. );
  27. params.successStatuses = [200];
  28. const paramXMLObj = {
  29. RequestPaymentConfiguration: {
  30. Payer: payer
  31. }
  32. };
  33. const paramXML = obj2xml(paramXMLObj, {
  34. headers: true
  35. });
  36. params.mime = 'xml';
  37. params.content = paramXML;
  38. const result = await this.request(params);
  39. return {
  40. status: result.status,
  41. res: result.res
  42. };
  43. };