22 . module ( 'RDash' )
33 . service ( 'app.services' , [ '$http' , '$q' , 'app.environments' , function ( $http , $q , environments ) {
44 var url = environments . services . customService . url ;
5- var deferred = $q . defer ( ) ;
5+
6+ this . isEmptyOrNull = function ( obj ) {
7+ /// <summary>
8+ /// Retrieve true when object is empty, undefined or null.
9+ /// </summary>
10+ /// <param name='obj'>Object to be checked</param>
11+ /// <returns type='boolean'>True when object is empty, undefined or null.</returns>
12+ /// <doc>myPerformance.factory:methods#isEmptyOrNull</doc>
13+ return ( ( obj === undefined ) ||
14+ ( obj === null ) ||
15+ ( angular . isString ( obj ) && ( obj === '' ) ) ||
16+ ( angular . isArray ( obj ) && ( obj . length === 0 ) ) // Arrays
17+ ) ;
18+ } ;
19+
20+ this . urlFormat = function ( ) {
21+ /// <summary>
22+ /// Format url using string.format way to match parameters.
23+ /// </summary>
24+ /// <returns type='string'>String parsed.</returns>
25+ /// <doc>myPerformance.factory:methods#urlFormat</doc>
26+ var args = arguments , url = '' , baseUrl = '' , qs = '' , qsFormatted = '' , splitted , vars = [ ] , hash , i ;
27+ if ( this . isEmptyOrNull ( args ) ) {
28+ return '' ;
29+ }
30+ if ( args . length === 1 ) {
31+ url = args [ 0 ] ;
32+ }
33+ else {
34+ url = args [ 0 ] . replace ( / \{ ( \d + ) \} / g, function ( match , number ) {
35+ return args [ parseInt ( number , 10 ) + 1 ] !== undefined ? encodeURIComponent ( args [ parseInt ( number , 10 ) + 1 ] ) : '' ;
36+ } ) ;
37+ }
38+ // Remove empty qs parameters
39+ if ( url . indexOf ( '?' ) >= 0 ) {
40+ splitted = url . split ( '?' ) ;
41+ baseUrl = splitted [ 0 ] ;
42+ if ( splitted . length > 1 ) {
43+ qs = splitted [ 1 ] . split ( '&' ) ;
44+ for ( i = 0 ; i < qs . length ; i ++ ) {
45+ if ( qs [ i ] . indexOf ( '=' ) >= 0 ) {
46+ hash = qs [ i ] . split ( '=' ) ;
47+ vars . push ( { code : hash [ 0 ] , value : hash [ 1 ] } ) ;
48+ }
49+ else {
50+ vars . push ( { code : qs [ i ] , value : '' } ) ;
51+ }
52+ }
53+ // Fill qsFormatted using vars and removing empty values
54+ for ( i = 0 ; i < vars . length ; i ++ ) {
55+ if ( vars [ i ] . value && vars [ i ] . value !== '' ) {
56+ qsFormatted = qsFormatted + ( ( qsFormatted === '' ) ? '?' : '&' ) + vars [ i ] . code + '=' + vars [ i ] . value ;
57+ }
58+ }
59+ }
60+ }
61+ else {
62+ baseUrl = url ;
63+ }
64+ return baseUrl + qsFormatted ;
65+ } ;
66+
667 this . getUserList = function ( ) {
68+ var deferred = $q . defer ( ) ;
769 $http . get ( url . getUserList , { } )
870 . success ( function ( data ) {
971 console . log ( data ) ;
@@ -19,4 +81,41 @@ angular
1981
2082 return deferred . promise ;
2183 } ;
84+
85+ this . addUser = function ( user ) {
86+ var deferred = $q . defer ( ) ;
87+ $http . post ( url . addUser , user )
88+ . success ( function ( data ) {
89+ console . log ( data ) ;
90+ if ( data . code == 1 ) {
91+ deferred . resolve ( data ) ;
92+ } else {
93+ deferred . reject ( data ) ;
94+ }
95+ } )
96+ . error ( function ( error ) {
97+ deferred . reject ( error ) ;
98+ } ) ;
99+
100+ return deferred . promise ;
101+ } ;
102+
103+ this . updateUser = function ( user ) {
104+ var deferred = $q . defer ( ) ;
105+ var urlQuery = this . urlFormat ( url . updateUser , user . id ) ;
106+ $http . put ( urlQuery , user )
107+ . success ( function ( data ) {
108+ console . log ( data ) ;
109+ if ( data . code == 1 ) {
110+ deferred . resolve ( data ) ;
111+ } else {
112+ deferred . reject ( data ) ;
113+ }
114+ } )
115+ . error ( function ( error ) {
116+ deferred . reject ( error ) ;
117+ } ) ;
118+
119+ return deferred . promise ;
120+ }
22121 } ] ) ;
0 commit comments