@atlassian/bitbucket-server
Version:
Bitbucket Server API client for Browser and Node.js
31 lines (27 loc) • 940 B
JavaScript
/**
* Adds Query Parameters to URL
* @param {String} url - URL
* @param {Object} params - Query Parameters
* @returns {String} URL with added Query Parameters
*/
const addQueryParameters = ( url, params = {} ) => {
const separator = /\?/.test( url ) ? '&' : '?'
// Force returning avatar url as it is not returned by default
// https://community.atlassian.com/t5/Bitbucket-articles/Retrieve-the-user-s-avatar-via-the-REST-API-endpoints/ba-p/940531
url = `${url}${separator}markup&avatarSize=64`
const names = Object.keys( params )
if ( names.length === 0 ) {
return url
}
return `${url}&${names
.map( name => {
if ( name === 'q' ) {
return Object.keys( params.q )
.map( key => `${key}=${encodeURIComponent( params.q[key] )}` )
.join( '&' )
}
return `${name}=${encodeURIComponent( params[name] )}`
} )
.join( '&' )}`
}
module.exports = addQueryParameters