rsanchez
2017-03-10 2762277c60db7df5ad3214b10a0dd93d4f2f1128
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;
   }
}