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
| | import { Observable } from 'rxjs/Rx';
| | import { Injectable } from '@angular/core';
| | import { Http, RequestOptions } from '@angular/http';
| | import { SeCurisResourceServices } from './base';
| |
| | var lic_example = {
| | id: 101,
| | activation_code: 'f3e2d27e-7f81-4ac7-87ba-b9e38b4fdbb8',
| | code: 'CITR01-436-1',
| | code_suffix: 1,
| | created_by_id: '_client',
| | creation_timestamp: 1445898088000,
| | email: 'GQuercia@trican.ca',
| | expiration_date: 1487523828000,
| | full_name: 'George Quercia',
| | licenseData: '{"appCode":"CICS","appName":"CurisIntegrity","licenseCode":"CITR01-436-1","activationCode":"f3e2d27e-7f81-4ac7-87ba-b9e38b4fdbb8","expirationDate":1487523828416,"arch":"amd64","osName":"Windows 7","macAddresses":["C4-D9-87-5D-53-72","C4-D9-87-5D-53-76","FC-15-B4-EB-70-F9"],"crcLogo":"10f6379e0e1c00ebc403160307e3c5d0aba0727c9cae0bf1ac7cd19d84fdc80f","metadata":{"a2Mode":"false","datasetPrefix":"TR","extendedMode":"false","maxConcurrentInstances":"-1","maxInstances":"3","maxUsers":"0","maxWellLifeLines":"50","timeThreshold":"0"},"signature":"cjyLYFyhXpWWsMNnG6ER9mtCREgw02aQDnXPSQQWZtiLWbu/GyHZzK+1msLhwuKMGYG6I90s5wp82HVIqhIheHOsov3JfnHgNtYzf3BdkqUinwPFuDqPqkXz5Sjb6bouWkmvTI1TN/s4U2DJOXVnYN4FnYl0/dBTcU9RP4NZlQxMu6oFuRrZSMfdMCxEJYZAU62SWgTSurkdmHhFgwRjIwsOXRWHYsr6vGT//yILI7UvMGbMc6dRCGwyJLPNi4nXwF9PRMLinB7fYK8HxKylTJx2O7bvWCZd6EOdwi6gRI/0HhOqZ7E4DzBDrqEnsHeuH4L47DfRdIMGDnA492F+mg=="}',
| | modification_timestamp: 1484931828000,
| | pack_code: 'CITR01',
| | pack_id: 12,
| | request_data: '{"appCode":"CICS","activationCode":"f3e2d27e-7f81-4ac7-87ba-b9e38b4fdbb8","arch":"amd64","osName":"Windows 7","macAddresses":["C4-D9-87-5D-53-72","C4-D9-87-5D-53-76","FC-15-B4-EB-70-F9"],"crcLogo":"10f6379e0e1c00ebc403160307e3c5d0aba0727c9cae0bf1ac7cd19d84fdc80f"}',
| | status: 'AC'
| | }
| |
| | export const PACK_STATUS = {
| | CREATED: 'CR',
| | ACTIVE: 'AC',
| | ONHOLD: 'OH',
| | EXPIRED: 'EX',
| | CANCELLED: 'CA'
| | }
| |
| | export const LIC_STATUS = {
| | CREATED: 'CR',
| | ACTIVE: 'AC',
| | REQUESTED: 'RE',
| | PREACTIVE: 'PA',
| | EXPIRED: 'EX',
| | BLOCKED: 'BL',
| | CANCELLED: 'CA'
| | }
| |
| | export const LIC_STATUSES = {
| | 'CR': 'Created',
| | 'AC': 'Active',
| | 'PA': 'Pre-active',
| | 'RE': 'Requested',
| | 'EX': 'Expired',
| | 'BL': 'Blocked',
| | 'CA': 'Cancelled'
| | };
| |
| | /**
| | * These transitions could be get from server, class License.Status, but
| | * we copy them for simplicity, this info won't change easily
| | */
| | export const LIC_ACTIONS_BY_STATUS = {
| | edit: [LIC_STATUS.REQUESTED, LIC_STATUS.CREATED, LIC_STATUS.EXPIRED, LIC_STATUS.PREACTIVE, LIC_STATUS.ACTIVE, LIC_STATUS.CANCELLED, LIC_STATUS.BLOCKED],
| | add_request: [LIC_STATUS.CREATED],
| | activate: [LIC_STATUS.CREATED, LIC_STATUS.REQUESTED, LIC_STATUS.PREACTIVE],
| | send: [LIC_STATUS.ACTIVE, LIC_STATUS.PREACTIVE],
| | download: [LIC_STATUS.ACTIVE, LIC_STATUS.PREACTIVE],
| | block: [LIC_STATUS.CANCELLED],
| | unblock: [LIC_STATUS.BLOCKED],
| | cancel: [LIC_STATUS.REQUESTED, LIC_STATUS.EXPIRED, LIC_STATUS.PREACTIVE, LIC_STATUS.ACTIVE],
| | 'delete': [LIC_STATUS.CREATED, LIC_STATUS.CANCELLED, LIC_STATUS.BLOCKED]
| | }
| |
| |
| |
| | @Injectable()
| | export class LicensesService extends SeCurisResourceServices {
| | constructor(http: Http) {
| | super(http, 'license');
| | }
| |
| | public getByPack(packId: number) {
| | let url = `${this.resource}?packId=${packId}`;
| | return this.http.get(url).map(response => response.json());
| | }
| |
| | public activate(id: number) {
| | return super.action(id, "activate");
| | }
| |
| | public cancel(id: number) {
| | return super.action(id, "cancel");
| | }
| |
| | public putonhold(id: number) {
| | return super.action(id, "putonhold");
| | }
| |
| | public isActionAvailable(action:string, lic:any) {
| | var validStatuses = LIC_ACTIONS_BY_STATUS[action];
| | return lic && validStatuses && validStatuses.indexOf(lic.status) !== -1;
| | }
| | }
|
|