summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/pipelines/services/pipelines_service.js
blob: b21f84b4545299a7c1c619b1588c8e96608d8305 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/* eslint-disable class-methods-use-this */
import Vue from 'vue';
import VueResource from 'vue-resource';

Vue.use(VueResource);

export default class PipelinesService {

  /**
  * Commits and merge request endpoints need to be requested with `.json`.
  *
  * The url provided to request the pipelines in the new merge request
  * page already has `.json`.
  *
  * @param  {String} root
  */
  constructor(root) {
    let endpoint;

    if (root.indexOf('.json') === -1) {
      endpoint = `${root}.json`;
    } else {
      endpoint = root;
    }

    this.pipelines = Vue.resource(endpoint);
  }

  getPipelines(data = {}) {
    const { scope, page } = data;
    return this.pipelines.get({ scope, page });
  }

  /**
   * Post request for all pipelines actions.
   * Endpoint content type needs to be:
   * `Content-Type:application/x-www-form-urlencoded`
   *
   * @param  {String} endpoint
   * @return {Promise}
   */
  postAction(endpoint) {
    return Vue.http.post(`${endpoint}.json`);
  }
}