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  }