Anup
Anup

Reputation: 9748

2 Services merge in 1

I have following in my .js file. I am new to angular. Now instead of writing this separately, I want it to be in one service say Practices.

How to do this?

angular.module('myApp').factory('Practices', ['$resource', function ($resource) {
    return $resource('/api/practices/:statusController/:statusId/:searchController/:searchId/:practiceId/:pageController/:pagenum', {
        practiceId: '@practiceId',
        statusId: '@statusId',
        statusController: '@statusController',
        searchId: '@searchId',
        searchController: '@searchController',
        pagenum: '@pagenum',
        pageController: '@pageController'
    });
}]);

angular.module('myApp')
  .factory('PracticesEdit', function ($resource) {

      return {
          UpdatePractice: function () {
              return $resource('/api/practicesUpdate/:practiceId', {
                  practiceId: '@_id'
              }, { //parameters default
                  update: {
                      method: 'PUT'
                  }
              });
          },
          UpdateCreditCard: function () {
              return $resource('/api/practicesCreditCardUpdate/:practiceId', {
                  practiceId: '@_id'
              }, { //parameters default
                  updateCredit: {
                      method: 'PUT'
                  }
              });
          }

      }
  });

Upvotes: 0

Views: 41

Answers (1)

doodeec
doodeec

Reputation: 2927

angular.module('myApp').factory('PracticesService', function ($resource) {
    var practices = $resource(...);

    return {
          updatePractice: function () {
             // the same
          },
          updateCreditCard: function () {
             // the same
          },
          practices: practices
      }
  });

and then you can use it in controller as

PracticesService.practices;
PracticesService.updateCreditCard();
PracticesService.updatePractice();

Upvotes: 1

Related Questions