app/assets/javascripts/modules/repositories/services/repositories.js

Summary

Maintainability
A
0 mins
Test Coverage
import Vue from 'vue';
import VueResource from 'vue-resource';

Vue.use(VueResource);

const tagsCustomActions = {
  groupedTags: {
    method: 'GET',
    url: 'api/v1/repositories/{repositoryId}/tags/grouped',
  },
};

const repositoryCustomActions = {
  toggleStar: {
    method: 'POST',
    url: 'repositories/{id}/toggle_star.json',
  },
};

const oldResource = Vue.resource('repositories{/id}', {}, repositoryCustomActions);
const resource = Vue.resource('api/v1/repositories{/id}');
const tagsResource = Vue.resource('api/v1/repositories{/repositoryId}/tags', {}, tagsCustomActions);

function get(id) {
  return resource.get({ id });
}

function update(repository) {
  return resource.update({ id: repository.id }, { repository });
}

function toggleStar(id) {
  return oldResource.toggleStar({ id }, {});
}

function remove(id) {
  return resource.delete({ id });
}

function groupedTags(repositoryId) {
  return tagsResource.groupedTags({ repositoryId });
}

export default {
  get,
  update,
  groupedTags,
  toggleStar,
  remove,
};