summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/api.js
blob: 49c2ac0dac3fb9fc469b52315616772a5f26e9be (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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
(function() {
  this.Api = {
    groupsPath: "/api/:version/groups.json",
    groupPath: "/api/:version/groups/:id.json",
    namespacesPath: "/api/:version/namespaces.json",
    groupProjectsPath: "/api/:version/groups/:id/projects.json",
    projectsPath: "/api/:version/projects.json?simple=true",
    labelsPath: "/api/:version/projects/:id/labels",
    licensePath: "/api/:version/licenses/:key",
    gitignorePath: "/api/:version/gitignores/:key",
    gitlabCiYmlPath: "/api/:version/gitlab_ci_ymls/:key",
    group: function(group_id, callback) {
      var url;
      url = Api.buildUrl(Api.groupPath);
      url = url.replace(':id', group_id);
      return $.ajax({
        url: url,
        data: {
          private_token: gon.api_token
        },
        dataType: "json"
      }).done(function(group) {
        return callback(group);
      });
    },
    groups: function(query, skip_ldap, callback) {
      var url;
      url = Api.buildUrl(Api.groupsPath);
      return $.ajax({
        url: url,
        data: {
          private_token: gon.api_token,
          search: query,
          per_page: 20
        },
        dataType: "json"
      }).done(function(groups) {
        return callback(groups);
      });
    },
    namespaces: function(query, callback) {
      var url;
      url = Api.buildUrl(Api.namespacesPath);
      return $.ajax({
        url: url,
        data: {
          private_token: gon.api_token,
          search: query,
          per_page: 20
        },
        dataType: "json"
      }).done(function(namespaces) {
        return callback(namespaces);
      });
    },
    projects: function(query, order, callback) {
      var url;
      url = Api.buildUrl(Api.projectsPath);
      return $.ajax({
        url: url,
        data: {
          private_token: gon.api_token,
          search: query,
          order_by: order,
          per_page: 20
        },
        dataType: "json"
      }).done(function(projects) {
        return callback(projects);
      });
    },
    newLabel: function(project_id, data, callback) {
      var url;
      url = Api.buildUrl(Api.labelsPath);
      url = url.replace(':id', project_id);
      data.private_token = gon.api_token;
      return $.ajax({
        url: url,
        type: "POST",
        data: data,
        dataType: "json"
      }).done(function(label) {
        return callback(label);
      }).error(function(message) {
        return callback(message.responseJSON);
      });
    },
    groupProjects: function(group_id, query, callback) {
      var url;
      url = Api.buildUrl(Api.groupProjectsPath);
      url = url.replace(':id', group_id);
      return $.ajax({
        url: url,
        data: {
          private_token: gon.api_token,
          search: query,
          per_page: 20
        },
        dataType: "json"
      }).done(function(projects) {
        return callback(projects);
      });
    },
    licenseText: function(key, data, callback) {
      var url;
      url = Api.buildUrl(Api.licensePath).replace(':key', key);
      return $.ajax({
        url: url,
        data: data
      }).done(function(license) {
        return callback(license);
      });
    },
    gitignoreText: function(key, callback) {
      var url;
      url = Api.buildUrl(Api.gitignorePath).replace(':key', key);
      return $.get(url, function(gitignore) {
        return callback(gitignore);
      });
    },
    gitlabCiYml: function(key, callback) {
      var url;
      url = Api.buildUrl(Api.gitlabCiYmlPath).replace(':key', key);
      return $.get(url, function(file) {
        return callback(file);
      });
    },
    buildUrl: function(url) {
      if (gon.relative_url_root != null) {
        url = gon.relative_url_root + url;
      }
      return url.replace(':version', gon.api_version);
    }
  };

}).call(this);