attlaz-client 1.2.13 → 1.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -47,6 +47,7 @@ class HttpClient {
47
47
  omitDefaultHeaders: true,
48
48
  body: request.body
49
49
  };
50
+ // TODO: set user agent
50
51
  // rawRequest.negotiateHttpVersion = NegotiateHttpVersion.HTTP1_ONLY;
51
52
  const response = await popsicle_1.fetch(request.getFullUrl(), rawRequest);
52
53
  const httpResponse = new HttpClientResponse_1.HttpClientResponse();
@@ -55,7 +56,16 @@ class HttpClient {
55
56
  // TODO: should we get JSON immediately?
56
57
  // response.json
57
58
  // httpResponse.body = await response.text();
58
- httpResponse.body = await response.json();
59
+ const rawData = await response.text();
60
+ let jsonData = null;
61
+ try {
62
+ jsonData = JSON.parse(rawData);
63
+ }
64
+ catch (e) {
65
+ console.log(httpResponse.statusText);
66
+ console.error('Unable to parse response data to JSON');
67
+ }
68
+ httpResponse.body = jsonData;
59
69
  const error = __1.ClientError.byStatus(response.status, response.statusText);
60
70
  if (!Utils_1.Utils.isNullOrUndefined(error)) {
61
71
  // const body: string = await response.text();
@@ -168,7 +168,7 @@ class OAuthClient {
168
168
  signRequest(requestObject) {
169
169
  const tokenType = this.oauthToken.tokenType;
170
170
  const accessToken = this.oauthToken.accessToken;
171
- if (tokenType.toLowerCase() === 'bearer') {
171
+ if (tokenType !== undefined && tokenType.toLowerCase() === 'bearer') {
172
172
  requestObject.setHeader('Authorization', 'Bearer ' + accessToken);
173
173
  }
174
174
  else {
@@ -1,18 +1,18 @@
1
1
  import { LogLevel } from "./LogLevel";
2
+ import { LogStreamId } from './LogStreamId';
2
3
  export declare class Log {
3
4
  id: string;
4
- date: Date;
5
- level: LogLevel;
5
+ readonly logStream: LogStreamId;
6
+ readonly date: Date;
7
+ readonly level: LogLevel;
6
8
  message: string;
7
9
  context: object;
8
- resolved: boolean;
9
10
  tags: Array<{
10
11
  key: string;
11
12
  value: string;
12
13
  }>;
13
- ignored: boolean;
14
14
  _version: string;
15
- constructor();
15
+ constructor(logStream: LogStreamId, level: LogLevel, date: Date);
16
16
  static parse(rawLog: any): Log;
17
17
  setTag(key: string, value: string): void;
18
18
  getTagValue(key: string): string | null;
@@ -2,22 +2,23 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Log = void 0;
4
4
  const LogLevel_1 = require("./LogLevel");
5
+ const LogStreamId_1 = require("./LogStreamId");
5
6
  class Log {
6
- constructor() {
7
- this.resolved = false;
7
+ constructor(logStream, level, date) {
8
8
  this.tags = [];
9
- this.ignored = false;
9
+ this.logStream = logStream;
10
+ this.level = level;
11
+ this.date = date;
10
12
  }
11
13
  static parse(rawLog) {
12
- let log = new Log();
14
+ const date = new Date(rawLog.date);
15
+ const level = LogLevel_1.LogLevel.fromString(rawLog.level);
16
+ const logStream = new LogStreamId_1.LogStreamId(rawLog.logStream.id);
17
+ let log = new Log(logStream, level, date);
13
18
  log.id = rawLog.id;
14
- log.date = new Date(rawLog.date);
15
- log.level = LogLevel_1.LogLevel.fromString(rawLog.level);
16
19
  log.message = rawLog.message;
17
20
  log.context = rawLog.context;
18
- log.resolved = rawLog.resolved;
19
21
  log.tags = rawLog.tags;
20
- log.ignored = rawLog.ignored;
21
22
  log._version = rawLog._version;
22
23
  return log;
23
24
  }
@@ -1,7 +1,9 @@
1
1
  import { LogLevel } from './LogLevel';
2
+ import { LogStreamId } from './LogStreamId';
2
3
  export declare class LogQuery {
4
+ readonly logStreamId: LogStreamId;
3
5
  message: string;
4
- resolved: boolean;
6
+ hidden: boolean;
5
7
  logLevels: LogLevel[];
6
8
  tags: Array<{
7
9
  key: string;
@@ -13,5 +15,5 @@ export declare class LogQuery {
13
15
  field: string;
14
16
  direction: number;
15
17
  }>;
16
- constructor();
18
+ constructor(logStreamId: LogStreamId);
17
19
  }
@@ -2,11 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LogQuery = void 0;
4
4
  class LogQuery {
5
- constructor() {
5
+ constructor(logStreamId) {
6
6
  this.message = null;
7
- this.resolved = null;
7
+ this.hidden = null;
8
8
  this.pageSize = 1000;
9
9
  this.pageNum = 0;
10
+ this.logStreamId = logStreamId;
10
11
  }
11
12
  }
12
13
  exports.LogQuery = LogQuery;
@@ -0,0 +1,4 @@
1
+ export declare class LogStreamId {
2
+ readonly id: string;
3
+ constructor(id: string);
4
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LogStreamId = void 0;
4
+ class LogStreamId {
5
+ constructor(id) {
6
+ this.id = id;
7
+ }
8
+ }
9
+ exports.LogStreamId = LogStreamId;
@@ -2,8 +2,14 @@ import { Endpoint } from './Endpoint';
2
2
  import { LogQuery } from '../Model/Log/LogQuery';
3
3
  import { PagedResult } from '../Model/PagedResult';
4
4
  import { Log } from '../Model/Log/Log';
5
+ import { LogStreamId } from '../Model/Log/LogStreamId';
6
+ import { LogLevel } from '../Model/Log/LogLevel';
5
7
  export declare class LogEndpoint extends Endpoint {
6
8
  getLogs(logQuery: LogQuery): Promise<PagedResult<Log>>;
7
9
  save(log: Log): Promise<Log>;
8
- delete(log: Log): Promise<boolean>;
10
+ delete(logId: string): Promise<boolean>;
11
+ clear(logStreamId: LogStreamId): Promise<boolean>;
12
+ getInformation(logStreamId: LogStreamId): Promise<{
13
+ logLevels: Map<LogLevel, number>;
14
+ }>;
9
15
  }
@@ -4,6 +4,7 @@ exports.LogEndpoint = void 0;
4
4
  const Endpoint_1 = require("./Endpoint");
5
5
  const PagedResult_1 = require("../Model/PagedResult");
6
6
  const Log_1 = require("../Model/Log/Log");
7
+ const Utils_1 = require("../Utils");
7
8
  class LogEndpoint extends Endpoint_1.Endpoint {
8
9
  getLogs(logQuery) {
9
10
  return new Promise((resolve, reject) => {
@@ -11,12 +12,12 @@ class LogEndpoint extends Endpoint_1.Endpoint {
11
12
  arrQuery.push('pageSize=' + logQuery.pageSize);
12
13
  arrQuery.push('pageNum=' + logQuery.pageNum);
13
14
  // Resolved
14
- if (logQuery.resolved !== null && logQuery.resolved !== undefined) {
15
- if (logQuery.resolved === true) {
16
- arrQuery.push('resolved=1');
15
+ if (logQuery.hidden !== null && logQuery.hidden !== undefined) {
16
+ if (logQuery.hidden === true) {
17
+ arrQuery.push('hidden=1');
17
18
  }
18
19
  else {
19
- arrQuery.push('resolved=0');
20
+ arrQuery.push('hidden=0');
20
21
  }
21
22
  }
22
23
  // LogLevels
@@ -33,7 +34,7 @@ class LogEndpoint extends Endpoint_1.Endpoint {
33
34
  const strTags = arrTags.join(',');
34
35
  arrQuery.push('tags=' + strTags);
35
36
  }
36
- let cmd = '/system/logs/?' + arrQuery.join('&');
37
+ let cmd = '/logstreams/' + Utils_1.Utils.base64encode(logQuery.logStreamId.id) + '/logs/?' + arrQuery.join('&');
37
38
  this.httpClient.request(cmd).then((rawLogs) => {
38
39
  let logs = [];
39
40
  for (let rawLog of rawLogs.data) {
@@ -51,7 +52,7 @@ class LogEndpoint extends Endpoint_1.Endpoint {
51
52
  }
52
53
  save(log) {
53
54
  return new Promise((resolve, reject) => {
54
- let cmd = '/system/logs/';
55
+ let cmd = '/logstreams/' + Utils_1.Utils.base64encode(log.logStream.id) + '/logs';
55
56
  this.httpClient.request(cmd, log, 'POST').then((rawSavedLog) => {
56
57
  resolve(Log_1.Log.parse(rawSavedLog));
57
58
  }).catch((reason) => {
@@ -62,10 +63,10 @@ class LogEndpoint extends Endpoint_1.Endpoint {
62
63
  });
63
64
  });
64
65
  }
65
- async delete(log) {
66
- let cmd = '/system/logs/' + log.id;
66
+ async delete(logId) {
67
+ let cmd = '/logstreams/:streamId/logs/' + logId;
67
68
  try {
68
- const removed = await this.httpClient.request(cmd, log, 'DELETE');
69
+ const removed = await this.httpClient.request(cmd, null, 'DELETE');
69
70
  return removed;
70
71
  }
71
72
  catch (e) {
@@ -75,5 +76,36 @@ class LogEndpoint extends Endpoint_1.Endpoint {
75
76
  throw e;
76
77
  }
77
78
  }
79
+ async clear(logStreamId) {
80
+ let cmd = '/logstreams/' + Utils_1.Utils.base64encode(logStreamId.id) + '/clear';
81
+ try {
82
+ const removed = await this.httpClient.request(cmd, null, 'POST');
83
+ return removed;
84
+ }
85
+ catch (e) {
86
+ if (this.httpClient.isDebugEnabled()) {
87
+ console.error('Failed to save log: ', e);
88
+ }
89
+ throw e;
90
+ }
91
+ }
92
+ async getInformation(logStreamId) {
93
+ try {
94
+ let url = '/logstreams/' + Utils_1.Utils.base64encode(logStreamId.id) + '/info';
95
+ const result = await this.request(url);
96
+ if (Utils_1.Utils.isNullOrUndefined(result)) {
97
+ return null;
98
+ }
99
+ // ToDO: parse data
100
+ const data = result.getData();
101
+ return { logLevels: data.level_count };
102
+ }
103
+ catch (error) {
104
+ if (this.httpClient.isDebugEnabled()) {
105
+ console.error('Failed to load log stream information: ', error);
106
+ }
107
+ throw error;
108
+ }
109
+ }
78
110
  }
79
111
  exports.LogEndpoint = LogEndpoint;
package/dist/index.d.ts CHANGED
@@ -16,6 +16,7 @@ export { HealthTestType } from './Model/HealthAlert/HealthTestType';
16
16
  export { Log } from './Model/Log/Log';
17
17
  export { LogLevel } from './Model/Log/LogLevel';
18
18
  export { LogQuery } from './Model/Log/LogQuery';
19
+ export { LogStreamId } from './Model/Log/LogStreamId';
19
20
  export { LogType } from './Model/Log/LogType';
20
21
  /** Messaging **/
21
22
  export { Channel } from './Model/Messaging/Channel/Channel';
package/dist/index.js CHANGED
@@ -33,6 +33,8 @@ var LogLevel_1 = require("./Model/Log/LogLevel");
33
33
  Object.defineProperty(exports, "LogLevel", { enumerable: true, get: function () { return LogLevel_1.LogLevel; } });
34
34
  var LogQuery_1 = require("./Model/Log/LogQuery");
35
35
  Object.defineProperty(exports, "LogQuery", { enumerable: true, get: function () { return LogQuery_1.LogQuery; } });
36
+ var LogStreamId_1 = require("./Model/Log/LogStreamId");
37
+ Object.defineProperty(exports, "LogStreamId", { enumerable: true, get: function () { return LogStreamId_1.LogStreamId; } });
36
38
  var LogType_1 = require("./Model/Log/LogType");
37
39
  Object.defineProperty(exports, "LogType", { enumerable: true, get: function () { return LogType_1.LogType; } });
38
40
  /** Messaging **/
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "attlaz-client",
3
- "version": "1.2.13",
3
+ "version": "1.4.2",
4
4
  "description": "Javascript Client to access Attlaz API",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",