Projekt

Obecné

Profil

« Předchozí | Další » 

Revize c40c10c6

Přidáno uživatelem Hung Hoang před téměř 6 roky(ů)

Re#7472 Refactored services implemenation

Zobrazit rozdíly:

webapp/package-lock.json
121 121
        "rxjs": "6.3.3"
122 122
      }
123 123
    },
124
    "@angular/animations": {
125
      "version": "7.2.15",
126
      "resolved": "https://repo.plus4u.net/repository/npm/@angular/animations/-/animations-7.2.15.tgz",
127
      "integrity": "sha512-8oBt3HLgd2+kyJHUgsd7OzKCCss67t2sch15XNoIWlOLfxclqU+EfFE6t/vCzpT8/+lpZS6LU9ZrTnb+UBj5jg==",
128
      "requires": {
129
        "tslib": "^1.9.0"
130
      }
131
    },
132
    "@angular/cdk": {
133
      "version": "7.3.7",
134
      "resolved": "https://repo.plus4u.net/repository/npm/@angular/cdk/-/cdk-7.3.7.tgz",
135
      "integrity": "sha512-xbXxhHHKGkVuW6K7pzPmvpJXIwpl0ykBnvA2g+/7Sgy5Pd35wCC+UtHD9RYczDM/mkygNxMQtagyCErwFnDtQA==",
136
      "requires": {
137
        "parse5": "^5.0.0",
138
        "tslib": "^1.7.1"
139
      },
140
      "dependencies": {
141
        "parse5": {
142
          "version": "5.1.0",
143
          "resolved": "https://repo.plus4u.net/repository/npm/parse5/-/parse5-5.1.0.tgz",
144
          "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==",
145
          "optional": true
146
        }
147
      }
148
    },
124 149
    "@angular/cli": {
125 150
      "version": "7.3.8",
126 151
      "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-7.3.8.tgz",
......
412 437
        "tslib": "^1.9.0"
413 438
      }
414 439
    },
440
    "@angular/http": {
441
      "version": "7.2.15",
442
      "resolved": "https://repo.plus4u.net/repository/npm/@angular/http/-/http-7.2.15.tgz",
443
      "integrity": "sha512-TR7PEdmLWNIre3Zn8lvyb4lSrvPUJhKLystLnp4hBMcWsJqq5iK8S3bnlR4viZ9HMlf7bW7+Hm4SI6aB3tdUtw==",
444
      "requires": {
445
        "tslib": "^1.9.0"
446
      }
447
    },
415 448
    "@angular/language-service": {
416 449
      "version": "7.2.13",
417 450
      "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-7.2.13.tgz",
......
610 643
        }
611 644
      }
612 645
    },
646
    "@ng-bootstrap/ng-bootstrap": {
647
      "version": "4.1.2",
648
      "resolved": "https://repo.plus4u.net/repository/npm/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-4.1.2.tgz",
649
      "integrity": "sha512-1kzxC32I1RgZiGp7O+QmZUJq+ENvov+z1RqfhtnD7zhJll+UdGPs+rPfIQ3jLqd+BgrfkSI+W4krVKAbXp1AKA==",
650
      "requires": {
651
        "tslib": "^1.9.0"
652
      }
653
    },
613 654
    "@ngtools/webpack": {
614 655
      "version": "7.3.8",
615 656
      "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-7.3.8.tgz",
......
997 1038
      "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
998 1039
      "dev": true
999 1040
    },
1041
    "angular-calendar": {
1042
      "version": "0.27.7",
1043
      "resolved": "https://repo.plus4u.net/repository/npm/angular-calendar/-/angular-calendar-0.27.7.tgz",
1044
      "integrity": "sha512-7b9FEDdF7X291fPvR5QndQXTtGWsJMd2eXDiZ8hDfUd4/NJ9ESaHEEg5Exth7Ntuwx19XmkjONLQkAvCiN3yqA==",
1045
      "requires": {
1046
        "angular-draggable-droppable": "^4.3.0",
1047
        "angular-resizable-element": "^3.2.4",
1048
        "calendar-utils": "^0.3.1",
1049
        "positioning": "^1.4.0",
1050
        "tslib": "^1.9.0"
1051
      }
1052
    },
1053
    "angular-draggable-droppable": {
1054
      "version": "4.3.0",
1055
      "resolved": "https://repo.plus4u.net/repository/npm/angular-draggable-droppable/-/angular-draggable-droppable-4.3.0.tgz",
1056
      "integrity": "sha512-IDUeUxZ0+0Y+ya/CDV5PMc5b3sjr4/aIVcTmo+jJhUusOWrCSKogxZDW7cK61B34/YVllb2K5gkzfzvLiYfQZw==",
1057
      "requires": {
1058
        "dom-autoscroller": "^2.3.4",
1059
        "tslib": "^1.9.0"
1060
      }
1061
    },
1062
    "angular-resizable-element": {
1063
      "version": "3.2.4",
1064
      "resolved": "https://repo.plus4u.net/repository/npm/angular-resizable-element/-/angular-resizable-element-3.2.4.tgz",
1065
      "integrity": "sha512-Qd/WRTaJgmDJoeWzmK0F52I3X0nLtFPirmsVC2ceic4EQ/3X2yYFCOWgCtH+PvMZct6Whoky3OQLqCpFXQsKHQ==",
1066
      "requires": {
1067
        "tslib": "^1.9.0"
1068
      }
1069
    },
1070
    "angularx-flatpickr": {
1071
      "version": "6.1.0",
1072
      "resolved": "https://repo.plus4u.net/repository/npm/angularx-flatpickr/-/angularx-flatpickr-6.1.0.tgz",
1073
      "integrity": "sha512-qhToIDVrCZ8Z/Z+sNi1+1eUkDtM3pxRsd8IXfZAd3Pp2dEjU5QfEyyrWJ7t3SzbhMnTA+dIKH6XfXF4HxBddSg==",
1074
      "requires": {
1075
        "tslib": "^1.9.0"
1076
      }
1077
    },
1078
    "animation-frame-polyfill": {
1079
      "version": "1.0.1",
1080
      "resolved": "https://repo.plus4u.net/repository/npm/animation-frame-polyfill/-/animation-frame-polyfill-1.0.1.tgz",
1081
      "integrity": "sha1-X1rZk6eHlL0Xas3lttzmKGdBDJ0="
1082
    },
1000 1083
    "ansi-colors": {
1001 1084
      "version": "3.2.4",
1002 1085
      "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz",
......
1112 1195
      "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==",
1113 1196
      "dev": true
1114 1197
    },
1198
    "array-from": {
1199
      "version": "2.1.1",
1200
      "resolved": "https://repo.plus4u.net/repository/npm/array-from/-/array-from-2.1.1.tgz",
1201
      "integrity": "sha1-z+nYwmYoudxa7MYqn12PHzUsEZU="
1202
    },
1115 1203
    "array-union": {
1116 1204
      "version": "1.0.2",
1117 1205
      "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
......
1844 1932
        "unset-value": "^1.0.0"
1845 1933
      }
1846 1934
    },
1935
    "calendar-utils": {
1936
      "version": "0.3.1",
1937
      "resolved": "https://repo.plus4u.net/repository/npm/calendar-utils/-/calendar-utils-0.3.1.tgz",
1938
      "integrity": "sha512-0XSJ/dP6QDeO9higbWZmf/ZE9mAUq05HdUONbSNpmwhKfKQ8zf6fMdU6M0ySv0q+TkdwjaGy0DFTRzSUZMsTVw=="
1939
    },
1847 1940
    "callsite": {
1848 1941
      "version": "1.0.0",
1849 1942
      "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz",
......
2412 2505
        "sha.js": "^2.4.8"
2413 2506
      }
2414 2507
    },
2508
    "create-point-cb": {
2509
      "version": "1.2.0",
2510
      "resolved": "https://repo.plus4u.net/repository/npm/create-point-cb/-/create-point-cb-1.2.0.tgz",
2511
      "integrity": "sha1-G85H/E/AGFXuEhONZ2sMsqfLznE=",
2512
      "requires": {
2513
        "type-func": "^1.0.1"
2514
      }
2515
    },
2415 2516
    "cross-spawn": {
2416 2517
      "version": "3.0.1",
2417 2518
      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
......
2505 2606
        "assert-plus": "^1.0.0"
2506 2607
      }
2507 2608
    },
2609
    "date-fns": {
2610
      "version": "1.30.1",
2611
      "resolved": "https://repo.plus4u.net/repository/npm/date-fns/-/date-fns-1.30.1.tgz",
2612
      "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw=="
2613
    },
2508 2614
    "date-format": {
2509 2615
      "version": "2.0.0",
2510 2616
      "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.0.0.tgz",
......
2762 2868
        "buffer-indexof": "^1.0.0"
2763 2869
      }
2764 2870
    },
2871
    "dom-autoscroller": {
2872
      "version": "2.3.4",
2873
      "resolved": "https://repo.plus4u.net/repository/npm/dom-autoscroller/-/dom-autoscroller-2.3.4.tgz",
2874
      "integrity": "sha512-HcAdt/2Dq9x4CG6LWXc2x9Iq0MJPAu8fuzHncclq7byufqYEYVtx9sZ/dyzR+gdj4qwEC9p27Lw1G2HRRYX6jQ==",
2875
      "requires": {
2876
        "animation-frame-polyfill": "^1.0.0",
2877
        "create-point-cb": "^1.0.0",
2878
        "dom-mousemove-dispatcher": "^1.0.1",
2879
        "dom-plane": "^1.0.1",
2880
        "dom-set": "^1.0.1",
2881
        "type-func": "^1.0.1"
2882
      }
2883
    },
2884
    "dom-mousemove-dispatcher": {
2885
      "version": "1.0.1",
2886
      "resolved": "https://repo.plus4u.net/repository/npm/dom-mousemove-dispatcher/-/dom-mousemove-dispatcher-1.0.1.tgz",
2887
      "integrity": "sha1-okpt35Oye7NpT3IIdUalf8fpFA8="
2888
    },
2889
    "dom-plane": {
2890
      "version": "1.0.2",
2891
      "resolved": "https://repo.plus4u.net/repository/npm/dom-plane/-/dom-plane-1.0.2.tgz",
2892
      "integrity": "sha1-+MheaXxYfxR+j8L6wd4HjB/kFyw=",
2893
      "requires": {
2894
        "create-point-cb": "^1.0.0"
2895
      }
2896
    },
2765 2897
    "dom-serialize": {
2766 2898
      "version": "2.2.1",
2767 2899
      "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz",
......
2774 2906
        "void-elements": "^2.0.0"
2775 2907
      }
2776 2908
    },
2909
    "dom-set": {
2910
      "version": "1.1.1",
2911
      "resolved": "https://repo.plus4u.net/repository/npm/dom-set/-/dom-set-1.1.1.tgz",
2912
      "integrity": "sha1-XCxhDuSDm1IO1fmN28vjFMD6lUo=",
2913
      "requires": {
2914
        "array-from": "^2.1.1",
2915
        "is-array": "^1.0.1",
2916
        "iselement": "^1.1.4"
2917
      }
2918
    },
2777 2919
    "domain-browser": {
2778 2920
      "version": "1.2.0",
2779 2921
      "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
......
3432 3574
        "locate-path": "^2.0.0"
3433 3575
      }
3434 3576
    },
3577
    "flatpickr": {
3578
      "version": "4.5.7",
3579
      "resolved": "https://repo.plus4u.net/repository/npm/flatpickr/-/flatpickr-4.5.7.tgz",
3580
      "integrity": "sha512-JqPfihUc9A/j9QAsh6otoARmMyUauPE17vRBEG+ThJwbl8zAq4ssGpxlPK3wWM/i8EFxkHg9UuVo0ds7XluKxw=="
3581
    },
3435 3582
    "flatted": {
3436 3583
      "version": "2.0.0",
3437 3584
      "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.0.tgz",
......
4910 5057
        }
4911 5058
      }
4912 5059
    },
5060
    "is-array": {
5061
      "version": "1.0.1",
5062
      "resolved": "https://repo.plus4u.net/repository/npm/is-array/-/is-array-1.0.1.tgz",
5063
      "integrity": "sha1-6YUMwsyGDDvAl36EzPDdRkWEJ5o="
5064
    },
4913 5065
    "is-arrayish": {
4914 5066
      "version": "0.2.1",
4915 5067
      "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
......
5120 5272
        "buffer-alloc": "^1.2.0"
5121 5273
      }
5122 5274
    },
5275
    "iselement": {
5276
      "version": "1.1.4",
5277
      "resolved": "https://repo.plus4u.net/repository/npm/iselement/-/iselement-1.1.4.tgz",
5278
      "integrity": "sha1-flW1Ko68pQp+LoDluNKEDzI1MUY="
5279
    },
5123 5280
    "isexe": {
5124 5281
      "version": "2.0.0",
5125 5282
      "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
......
7237 7394
        }
7238 7395
      }
7239 7396
    },
7397
    "positioning": {
7398
      "version": "1.4.0",
7399
      "resolved": "https://repo.plus4u.net/repository/npm/positioning/-/positioning-1.4.0.tgz",
7400
      "integrity": "sha512-LbN+mgAXtcDdN46xMJ3yZwjndqqYJODaO5qKmU+MVMu5tL3K2dlm1Qha/zh1k2JAFym5HDaZpnPfO4gr91VTRw=="
7401
    },
7240 7402
    "posix-character-classes": {
7241 7403
      "version": "0.1.1",
7242 7404
      "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
......
9518 9680
      "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
9519 9681
      "dev": true
9520 9682
    },
9683
    "type-func": {
9684
      "version": "1.0.3",
9685
      "resolved": "https://repo.plus4u.net/repository/npm/type-func/-/type-func-1.0.3.tgz",
9686
      "integrity": "sha1-qxhCNK6A2NUAV87+/zstl9CK6bA="
9687
    },
9521 9688
    "type-is": {
9522 9689
      "version": "1.6.16",
9523 9690
      "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz",
webapp/src/app/enums/common.enum.ts
9 9
  REJECTED = 'REJECTED',
10 10
}
11 11

  
12
export enum ProfileStatus {
13
  AUTHORIZED = 'AUTHORIZED',
14
  PENDING = 'PENDING',
15
  REJECTED = 'REJECTED',
16
}
17

  
12 18
export enum VacationType {
13 19
  VACATION = 'VACATION',
14 20
  SICKDAY = 'SICKDAY',
21
  NONE = 'NONE',
15 22
}
16 23

  
17 24
export enum TimeUnit {
webapp/src/app/models/user-basic-information.model.ts
1 1
import {VacationType} from '../enums/common.enum';
2
import {Time} from '@angular/common';
2 3

  
3 4
export interface UserBasicInformation {
4 5
  id: number;
......
10 11
  calendar: [
11 12
    {
12 13
      date: Date,
13
      from: Date,
14
      to: Date,
14
      from: Time,
15
      to: Time,
15 16
      type: VacationType;
16 17
    }
17 18
  ];
webapp/src/app/services/basic.service.ts
8 8
})
9 9
export class BasicService {
10 10
  protected baseUrl = environment.apiUrl;
11
  protected withResponse = {
12
    headers: new HttpHeaders({
13
      observe: 'response',
14
    })
15
  };
16 11

  
17 12
  protected handleError(error: HttpErrorResponse) {
18 13
    if (error.error instanceof ErrorEvent) {
webapp/src/app/services/users.service.ts
1 1
import { Injectable } from '@angular/core';
2 2
import { HttpClient } from '@angular/common/http';
3 3
import { BasicService } from './basic.service';
4
import { catchError } from 'rxjs/operators';
4
import {catchError, map} from 'rxjs/operators';
5 5

  
6
import { UserBasicInformation } from '../models/user-basic-information.model';
6
import {UserBasicInformation} from '../models/user-basic-information.model';
7 7
import { Requests } from '../models/requests.model';
8
import {ProfileStatus, RequestTypes} from '../enums/common.enum';
9
import {Observable} from 'rxjs';
8 10

  
9 11
@Injectable({
10 12
  providedIn: 'root'
......
14 16
  private requestsUrl = this.baseUrl + '/users/requests?type=';
15 17

  
16 18
  getAuthorizedUsers() {
17
    return this.getUsersWithStatus('AUTHORIZED');
19
    return this.getUsersWithStatus(ProfileStatus.AUTHORIZED);
18 20
  }
19 21

  
20 22
  getPendingUsers() {
21
    return this.getUsersWithStatus('PENDING');
23
    return this.getUsersWithStatus(ProfileStatus.PENDING);
22 24
  }
23 25

  
24 26
  getRejectedUsers() {
25
    return this.getUsersWithStatus('REJECTED');
27
    return this.getUsersWithStatus(ProfileStatus.REJECTED);
26 28
  }
27 29

  
28
  private getUsersWithStatus(status: string) {
30
  private getUsersWithStatus(status: string): Observable<UserBasicInformation[]> {
31
    console.log(this.usersUrl + status);
29 32
    return this.http.get<UserBasicInformation[]>(this.usersUrl + status)
30 33
      .pipe(
31 34
        catchError(err => this.handleError(err))
......
33 36
  }
34 37

  
35 38
  getVacationRequests() {
36
    return this.getRequestsWithType('VACATION');
39
    return this.getRequestsWithType(RequestTypes.VACATION);
37 40
  }
38 41

  
39 42
  getAuthorizationRequests() {
40
    return this.getRequestsWithType('AUTHORIZATION');
43
    return this.getRequestsWithType(RequestTypes.AUTHORIZATION);
41 44
  }
42 45

  
43 46
  private getRequestsWithType(type: string) {
webapp/src/environments/environment.ts
1 1
export const environment = {
2 2
  production: false,
3
  apiUrl: 'http://192.168.99.100:9080/'
3
  apiUrl: 'http://localhost:9080'
4 4
};
webapp/tslint.json
70 70
    "use-life-cycle-interface": true,
71 71
    "use-pipe-transform-interface": true,
72 72
    "component-class-suffix": true,
73
    "directive-class-suffix": true
73
    "directive-class-suffix": true,
74
    "variable-name": [true,
75
      "check-format",
76
      "allow-leading-underscore"
77
    ]
74 78
  }
75 79
}

Také k dispozici: Unified diff