github.com/Ilhicas/nomad@v1.0.4-0.20210304152020-e86851182bc3/ui/app/adapters/deployment.js (about) 1 import Watchable from './watchable'; 2 3 export default class DeploymentAdapter extends Watchable { 4 fail(deployment) { 5 const id = deployment.get('id'); 6 const url = urlForAction(this.urlForFindRecord(id, 'deployment'), '/fail'); 7 return this.ajax(url, 'POST', { 8 data: { 9 DeploymentId: id, 10 }, 11 }); 12 } 13 14 promote(deployment) { 15 const id = deployment.get('id'); 16 const url = urlForAction(this.urlForFindRecord(id, 'deployment'), '/promote'); 17 return this.ajax(url, 'POST', { 18 data: { 19 DeploymentId: id, 20 All: true, 21 }, 22 }); 23 } 24 } 25 26 // The deployment action API endpoints all end with the ID 27 // /deployment/:action/:deployment_id instead of /deployment/:deployment_id/:action 28 function urlForAction(url, extension = '') { 29 const [path, params] = url.split('?'); 30 const pathParts = path.split('/'); 31 const idPart = pathParts.pop(); 32 let newUrl = `${pathParts.join('/')}${extension}/${idPart}`; 33 34 if (params) { 35 newUrl += `?${params}`; 36 } 37 38 return newUrl; 39 }