JSFiddle - React, Tailwind, and code Playground

by tonytlwu

JavaScript

var mediaFilesRegExp = /https?:\/\/[^ ]*(fliplet)[^ ]+\/v1\/media\/files\/([0-9]+)\/contents(\/[A-z0-9'%-_\. ]+)?\??/g;
var host = 'https://api.fliplet.com/';
var cdnHost = 'https://cdn.fliplet.com/';


// This works
var value = 'https://api.fliplet.com/v1/media/files/874233/contents/Connected%20-%20Quick%20Reference%20Guide.pdf';

// This doesn't work
//value = 'https://api.fliplet.com/v1/media/files/12345/contents?auth_token=123123123';

var s = value.replace(mediaFilesRegExp, function (url) {
  url = url.replace(host, cdnHost);

  var authToken = '456456456';
  var existingToken = url.match(/auth_token=([A-z0-9-]+)/);

  if (existingToken) {
    return url.replace(existingToken[1], authToken);
  }

  return url + '?auth_token=' + authToken + '&';
});

console.log(s);