@voicenter-team/events-sdk 0.0.8 → 0.0.10
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.
- package/dist/voicenter-events-sdk.d.ts +185 -36
- package/package.json +4 -1
- package/.eslintrc.cjs +0 -16
- package/.github/workflows/main.yml +0 -16
- package/.idea/VoicenterEventsSDK.iml +0 -12
- package/.idea/git_toolbox_prj.xml +0 -15
- package/.idea/inspectionProfiles/Project_Default.xml +0 -6
- package/.idea/jsLibraryMappings.xml +0 -6
- package/.idea/jsLinters/eslint.xml +0 -7
- package/.idea/modules.xml +0 -8
- package/.idea/vcs.xml +0 -6
- package/.nvmrc +0 -1
- package/TODELETE_TEMP/events.json +0 -69122
- package/TODELETE_TEMP/temphelper.cjs +0 -101
- package/docs/package-lock.json +0 -3820
- package/docs/package.json +0 -25
- package/docs/src/.vuepress/client.js +0 -8
- package/docs/src/.vuepress/components/Demo.vue +0 -183
- package/docs/src/.vuepress/config.js +0 -60
- package/docs/src/.vuepress/public/favicon.ico +0 -0
- package/docs/src/.vuepress/public/images/logo.png +0 -0
- package/docs/src/.vuepress/styles/index.scss +0 -0
- package/docs/src/.vuepress/styles/index.styl +0 -8
- package/docs/src/.vuepress/styles/palette.styl +0 -10
- package/docs/src/demo.md +0 -7
- package/docs/src/index.md +0 -4
- package/jest.config.js +0 -11
- package/src/classes/auth/auth.class.ts +0 -205
- package/src/classes/auth/auth.urls.ts +0 -10
- package/src/classes/events-sdk/events-sdk-default-options.ts +0 -46
- package/src/classes/events-sdk/events-sdk.class.ts +0 -250
- package/src/classes/events-sdk/events-sdk.test.ts +0 -9
- package/src/classes/events-sdk/events-sdk.types.ts +0 -69
- package/src/classes/socket-io/socket-io.class.ts +0 -172
- package/src/classes/socket-io/socket-io.d.ts +0 -10
- package/src/classes/socket-io/versions/index.ts +0 -52
- package/src/classes/socket-io/versions/v1_3_7.js +0 -2083
- package/src/classes/storage/storage.class.ts +0 -43
- package/src/enum/auth.enum.ts +0 -4
- package/src/enum/events.enum.ts +0 -98
- package/src/index.ts +0 -6
- package/src/types/auth.d.ts +0 -49
- package/src/types/events.common.d.ts +0 -110
- package/src/types/events.d.ts +0 -175
- package/src/types/listeners.d.ts +0 -37
- package/src/types/public-api.d.ts +0 -39
- package/src/types/socket.d.ts +0 -5
- package/swagger/generated/Swagger.json +0 -1
- package/swagger/index.js +0 -60
- package/swagger/package.json +0 -21
- package/swagger/scripts/update-swagger-json.js +0 -53
- package/swagger/yarn.lock +0 -2100
- package/tsconfig.json +0 -50
- package/vite.config.ts +0 -41
package/docs/package.json
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "voicneter-events-sdk",
|
|
3
|
-
"version": "0.0.1",
|
|
4
|
-
"description": "",
|
|
5
|
-
"main": "index.js",
|
|
6
|
-
"authors": {
|
|
7
|
-
"name": "",
|
|
8
|
-
"email": "bohdan.ko@voicenter.com"
|
|
9
|
-
},
|
|
10
|
-
"scripts": {
|
|
11
|
-
"dev": "vuepress dev src",
|
|
12
|
-
"build": "vuepress build src"
|
|
13
|
-
},
|
|
14
|
-
"license": "MIT",
|
|
15
|
-
"devDependencies": {
|
|
16
|
-
"@vuepress/plugin-register-components": "^2.0.0-beta.62",
|
|
17
|
-
"typedoc": "^0.24.8",
|
|
18
|
-
"typedoc-plugin-markdown": "^3.15.3",
|
|
19
|
-
"vuepress": "^2.0.0-beta.62",
|
|
20
|
-
"vuepress-plugin-typedoc": "^0.12.1"
|
|
21
|
-
},
|
|
22
|
-
"dependencies": {
|
|
23
|
-
"dotenv": "^16.3.1"
|
|
24
|
-
}
|
|
25
|
-
}
|
|
@@ -1,183 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div>
|
|
3
|
-
<p v-if="loading">
|
|
4
|
-
Loading...
|
|
5
|
-
</p>
|
|
6
|
-
|
|
7
|
-
<template v-else>
|
|
8
|
-
<div>
|
|
9
|
-
<pre><code style="color: black">{{ JSON.stringify(events, null, 4) }}</code></pre>
|
|
10
|
-
</div>
|
|
11
|
-
|
|
12
|
-
<div>
|
|
13
|
-
<form @submit.prevent="login">
|
|
14
|
-
<input type="text" v-model="token" placeholder="token"/>
|
|
15
|
-
|
|
16
|
-
<button type="submit">Login</button>
|
|
17
|
-
</form>
|
|
18
|
-
</div>
|
|
19
|
-
</template>
|
|
20
|
-
</div>
|
|
21
|
-
</template>
|
|
22
|
-
|
|
23
|
-
<script lang="ts" setup>
|
|
24
|
-
import {reactive, ref} from 'vue'
|
|
25
|
-
import EventsSdkClass from '@/index'
|
|
26
|
-
import {eventsSdkDefaultOptions} from '@/classes/events-sdk/events-sdk-default-options'
|
|
27
|
-
import {EventsEnum} from '@/enum/events.enum'
|
|
28
|
-
import {EventTypeData} from '@/types/events'
|
|
29
|
-
import {LoginType} from "@/enum/auth.enum";
|
|
30
|
-
|
|
31
|
-
/* Data */
|
|
32
|
-
const token = ref('QMSVU9dwNYC9Le9VCBqx24AB9TYyWj9Xn5aCPV0GFHIWoShQqfPtnAPmnw24xpJIUSsDDtlac2OPpjx0t3MSkxH3AhiQGHCeGZ8e')
|
|
33
|
-
const loading = ref(false)
|
|
34
|
-
const loggedId = ref(false)
|
|
35
|
-
const events = reactive<{ [K in EventsEnum]?: Array<EventTypeData<K>> }>({})
|
|
36
|
-
|
|
37
|
-
/* Methods */
|
|
38
|
-
async function login() {
|
|
39
|
-
if (!token.value) {
|
|
40
|
-
return alert('Token is required')
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
loading.value = true
|
|
44
|
-
|
|
45
|
-
const sdk = new EventsSdkClass({
|
|
46
|
-
...eventsSdkDefaultOptions,
|
|
47
|
-
token: token.value,
|
|
48
|
-
loginType: LoginType.USER,
|
|
49
|
-
})
|
|
50
|
-
|
|
51
|
-
await sdk.init()
|
|
52
|
-
|
|
53
|
-
sdk.on(
|
|
54
|
-
EventsEnum.ALL_DIALER_STATUS,
|
|
55
|
-
({ data }) => {
|
|
56
|
-
|
|
57
|
-
if (!events[EventsEnum.ALL_DIALER_STATUS]) {
|
|
58
|
-
events[EventsEnum.ALL_DIALER_STATUS] = []
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
events[EventsEnum.ALL_DIALER_STATUS]?.push(data)
|
|
62
|
-
}
|
|
63
|
-
)
|
|
64
|
-
|
|
65
|
-
sdk.on(
|
|
66
|
-
EventsEnum.ALL_EXTENSION_STATUS,
|
|
67
|
-
({ data }) => {
|
|
68
|
-
|
|
69
|
-
if (!events[EventsEnum.ALL_EXTENSION_STATUS]) {
|
|
70
|
-
events[EventsEnum.ALL_EXTENSION_STATUS] = []
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
events[EventsEnum.ALL_EXTENSION_STATUS]?.push(data)
|
|
74
|
-
}
|
|
75
|
-
)
|
|
76
|
-
|
|
77
|
-
sdk.on(
|
|
78
|
-
EventsEnum.ALL_USERS_STATUS,
|
|
79
|
-
({ data }) => {
|
|
80
|
-
|
|
81
|
-
if (!events[EventsEnum.ALL_USERS_STATUS]) {
|
|
82
|
-
events[EventsEnum.ALL_USERS_STATUS] = []
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
events[EventsEnum.ALL_USERS_STATUS]?.push(data)
|
|
86
|
-
}
|
|
87
|
-
)
|
|
88
|
-
|
|
89
|
-
sdk.on(
|
|
90
|
-
EventsEnum.QUEUE_EVENT,
|
|
91
|
-
({ data }) => {
|
|
92
|
-
|
|
93
|
-
if (!events[EventsEnum.QUEUE_EVENT]) {
|
|
94
|
-
events[EventsEnum.QUEUE_EVENT] = []
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
events[EventsEnum.QUEUE_EVENT]?.push(data)
|
|
98
|
-
}
|
|
99
|
-
)
|
|
100
|
-
|
|
101
|
-
sdk.on(
|
|
102
|
-
EventsEnum.EXTENSION_EVENT,
|
|
103
|
-
({ data }) => {
|
|
104
|
-
|
|
105
|
-
if (!events[EventsEnum.EXTENSION_EVENT]) {
|
|
106
|
-
events[EventsEnum.EXTENSION_EVENT] = []
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
events[EventsEnum.EXTENSION_EVENT]?.push(data)
|
|
110
|
-
}
|
|
111
|
-
)
|
|
112
|
-
|
|
113
|
-
sdk.on(
|
|
114
|
-
EventsEnum.LOGIN_SUCCESS,
|
|
115
|
-
({ data }) => {
|
|
116
|
-
if (!events[EventsEnum.LOGIN_SUCCESS]) {
|
|
117
|
-
events[EventsEnum.LOGIN_SUCCESS] = []
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
loggedId.value = true
|
|
121
|
-
loading.value = false
|
|
122
|
-
|
|
123
|
-
events[EventsEnum.LOGIN_SUCCESS]?.push(data)
|
|
124
|
-
}
|
|
125
|
-
)
|
|
126
|
-
|
|
127
|
-
sdk.on(
|
|
128
|
-
EventsEnum.LOGIN_STATUS,
|
|
129
|
-
({ data }) => {
|
|
130
|
-
if (!events[EventsEnum.LOGIN_STATUS]) {
|
|
131
|
-
events[EventsEnum.LOGIN_STATUS] = []
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
events[EventsEnum.LOGIN_STATUS]?.push(data)
|
|
135
|
-
}
|
|
136
|
-
)
|
|
137
|
-
|
|
138
|
-
sdk.on(
|
|
139
|
-
'*',
|
|
140
|
-
(data) => {
|
|
141
|
-
switch (data.name) {
|
|
142
|
-
case EventsEnum.ALL_DIALER_STATUS:
|
|
143
|
-
console.log(`FROM ALL ${EventsEnum.ALL_DIALER_STATUS}`, data)
|
|
144
|
-
break
|
|
145
|
-
case EventsEnum.ALL_EXTENSION_STATUS:
|
|
146
|
-
console.log(`FROM ALL ${EventsEnum.ALL_EXTENSION_STATUS}`, data)
|
|
147
|
-
break
|
|
148
|
-
case EventsEnum.ALL_USERS_STATUS:
|
|
149
|
-
console.log(`FROM ALL ${EventsEnum.ALL_USERS_STATUS}`, data)
|
|
150
|
-
break
|
|
151
|
-
case EventsEnum.QUEUE_EVENT:
|
|
152
|
-
console.log(`FROM ALL ${EventsEnum.QUEUE_EVENT}`, data)
|
|
153
|
-
break
|
|
154
|
-
case EventsEnum.EXTENSION_EVENT:
|
|
155
|
-
console.log(`FROM ALL ${EventsEnum.EXTENSION_EVENT}`, data)
|
|
156
|
-
break
|
|
157
|
-
case EventsEnum.LOGIN_SUCCESS:
|
|
158
|
-
console.log(`FROM ALL ${EventsEnum.LOGIN_SUCCESS}`, data)
|
|
159
|
-
break
|
|
160
|
-
case EventsEnum.LOGIN_STATUS:
|
|
161
|
-
console.log(`FROM ALL ${EventsEnum.LOGIN_STATUS}`, data)
|
|
162
|
-
break
|
|
163
|
-
case EventsEnum.ONLINE_STATUS_EVENT:
|
|
164
|
-
console.log(`FROM ALL ${EventsEnum.ONLINE_STATUS_EVENT}`, data)
|
|
165
|
-
break
|
|
166
|
-
default:
|
|
167
|
-
console.log('Unknown event', data)
|
|
168
|
-
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
)
|
|
172
|
-
|
|
173
|
-
setTimeout(
|
|
174
|
-
() => {
|
|
175
|
-
if (!loggedId.value) {
|
|
176
|
-
loading.value = false
|
|
177
|
-
alert('Login failed')
|
|
178
|
-
}
|
|
179
|
-
},
|
|
180
|
-
5000
|
|
181
|
-
)
|
|
182
|
-
}
|
|
183
|
-
</script>
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { defineUserConfig, defaultTheme } from 'vuepress'
|
|
2
|
-
import { description } from '../../package'
|
|
3
|
-
import { registerComponentsPlugin } from '@vuepress/plugin-register-components'
|
|
4
|
-
import { getDirname, path } from '@vuepress/utils'
|
|
5
|
-
import { typedocPlugin } from 'vuepress-plugin-typedoc/next';
|
|
6
|
-
import * as dotenv from 'dotenv'
|
|
7
|
-
dotenv.config()
|
|
8
|
-
|
|
9
|
-
const __dirname = getDirname(import.meta.url)
|
|
10
|
-
|
|
11
|
-
export default defineUserConfig({
|
|
12
|
-
description: description,
|
|
13
|
-
|
|
14
|
-
head: [
|
|
15
|
-
['link', {rel: 'icon', href: '/favicon.ico'}],
|
|
16
|
-
['meta', {name: 'theme-color', content: '#2675FF'}],
|
|
17
|
-
['meta', {name: 'apple-mobile-web-app-capable', content: 'yes'}],
|
|
18
|
-
['meta', {name: 'apple-mobile-web-app-status-bar-style', content: '#2675FF'}]
|
|
19
|
-
],
|
|
20
|
-
|
|
21
|
-
theme: defaultTheme({
|
|
22
|
-
repo: '',
|
|
23
|
-
editLinks: false,
|
|
24
|
-
logo: '/images/logo.png',
|
|
25
|
-
docsDir: '',
|
|
26
|
-
editLinkText: '',
|
|
27
|
-
colorMode: 'light',
|
|
28
|
-
lastUpdated: false,
|
|
29
|
-
sidebar: [
|
|
30
|
-
{
|
|
31
|
-
text: 'General',
|
|
32
|
-
link: '/',
|
|
33
|
-
collapsible: false,
|
|
34
|
-
children: [
|
|
35
|
-
'demo',
|
|
36
|
-
{
|
|
37
|
-
text: 'API',
|
|
38
|
-
link: 'api',
|
|
39
|
-
rel: 'api'
|
|
40
|
-
}
|
|
41
|
-
]
|
|
42
|
-
}
|
|
43
|
-
]
|
|
44
|
-
}),
|
|
45
|
-
|
|
46
|
-
plugins: [
|
|
47
|
-
registerComponentsPlugin({
|
|
48
|
-
componentsDir: path.resolve(__dirname, './components')
|
|
49
|
-
}),
|
|
50
|
-
typedocPlugin({
|
|
51
|
-
entryPoints: ['../src/types/public-api.d.ts'],
|
|
52
|
-
tsconfig: '../tsconfig.json'
|
|
53
|
-
})
|
|
54
|
-
],
|
|
55
|
-
|
|
56
|
-
alias: {
|
|
57
|
-
'@': path.resolve(__dirname, '../', '../', '../', 'src'),
|
|
58
|
-
'root': path.resolve(__dirname, '../', '../', '../'),
|
|
59
|
-
}
|
|
60
|
-
})
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
package/docs/src/demo.md
DELETED
package/docs/src/index.md
DELETED
package/jest.config.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
// jest.config.js
|
|
2
|
-
module.exports = {
|
|
3
|
-
preset: 'ts-jest',
|
|
4
|
-
testEnvironment: 'node',
|
|
5
|
-
roots: [ '<rootDir>/src' ],
|
|
6
|
-
transform: {
|
|
7
|
-
'^.+\\.tsx?$': 'ts-jest',
|
|
8
|
-
},
|
|
9
|
-
testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$',
|
|
10
|
-
moduleFileExtensions: [ 'ts', 'tsx', 'js', 'jsx', 'json', 'node' ],
|
|
11
|
-
}
|
|
@@ -1,205 +0,0 @@
|
|
|
1
|
-
import md5 from 'js-md5'
|
|
2
|
-
|
|
3
|
-
import EventsSdkClass from '@/classes/events-sdk/events-sdk.class'
|
|
4
|
-
import { EventsSdkOptions, ServerParameter } from '@/classes/events-sdk/events-sdk.types'
|
|
5
|
-
import {
|
|
6
|
-
ExternalLoginRequestBody,
|
|
7
|
-
ExternalLoginResponse,
|
|
8
|
-
LoginSessionData,
|
|
9
|
-
LoginSessionPayload,
|
|
10
|
-
Settings
|
|
11
|
-
} from '@/types/auth'
|
|
12
|
-
import { LoginType } from '@/enum/auth.enum'
|
|
13
|
-
import { getSettingsUrl, newLoginUrl, refreshTokenUrl } from '@/classes/auth/auth.urls'
|
|
14
|
-
import { StorageClass } from '@/classes/storage/storage.class'
|
|
15
|
-
|
|
16
|
-
class AuthClass{
|
|
17
|
-
constructor (private readonly eventsSdkClass: EventsSdkClass) {
|
|
18
|
-
this.eventsSdkClass = eventsSdkClass
|
|
19
|
-
|
|
20
|
-
this.storageKey = ''
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
private delay = 1000
|
|
24
|
-
public lastLoginTimestamp: number | undefined
|
|
25
|
-
public token: string | undefined
|
|
26
|
-
|
|
27
|
-
private storageKey: string
|
|
28
|
-
|
|
29
|
-
public async login (options: EventsSdkOptions) {
|
|
30
|
-
const payload: LoginSessionPayload = {
|
|
31
|
-
token: options.token,
|
|
32
|
-
email: options.email,
|
|
33
|
-
password: options.password
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
this.storageKey = md5(JSON.stringify(payload))
|
|
37
|
-
|
|
38
|
-
if (this.lastLoginTimestamp && this.lastLoginTimestamp + this.delay > new Date().getTime()) {
|
|
39
|
-
return
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
this.updateLastLoginTimestamp()
|
|
43
|
-
|
|
44
|
-
const isLoggedIn = await this.checkLoginStatus(this.storageKey)
|
|
45
|
-
|
|
46
|
-
if (!isLoggedIn) {
|
|
47
|
-
await this.userLoginFunction(payload, this.storageKey, options.loginType)
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
public updateLastLoginTimestamp () {
|
|
52
|
-
this.lastLoginTimestamp = new Date().getTime()
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
private async checkLoginStatus (key: string): Promise<boolean> {
|
|
56
|
-
const loginSessionData = await StorageClass.getSessionStorageDataByKey(key)
|
|
57
|
-
|
|
58
|
-
if (loginSessionData) {
|
|
59
|
-
this.onLoginResponse(loginSessionData)
|
|
60
|
-
|
|
61
|
-
return true
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
return false
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
private async userLoginFunction (
|
|
68
|
-
payload: LoginSessionPayload,
|
|
69
|
-
key: string,
|
|
70
|
-
loginType: LoginType,
|
|
71
|
-
) {
|
|
72
|
-
const externalLoginResponse = await this.externalLogin(
|
|
73
|
-
newLoginUrl,
|
|
74
|
-
payload,
|
|
75
|
-
loginType,
|
|
76
|
-
)
|
|
77
|
-
|
|
78
|
-
const settings = await this.getSettings(externalLoginResponse.Data.AccessToken)
|
|
79
|
-
|
|
80
|
-
const loginSessionData: LoginSessionData = {
|
|
81
|
-
...externalLoginResponse.Data,
|
|
82
|
-
...settings
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
this.onLoginResponse(loginSessionData)
|
|
86
|
-
|
|
87
|
-
await StorageClass.updateSessionStorageKey(key, loginSessionData)
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
private onLoginResponse (loginSessionData: LoginSessionData) {
|
|
91
|
-
if (loginSessionData.MonitorList && loginSessionData.MonitorList.length) {
|
|
92
|
-
this.eventsSdkClass.servers = [ ...loginSessionData.MonitorList ]
|
|
93
|
-
this.eventsSdkClass.server = this.eventsSdkClass.servers.reduce((prev, current) =>
|
|
94
|
-
(prev.Priority > current.Priority) ? prev : current
|
|
95
|
-
)
|
|
96
|
-
}
|
|
97
|
-
if (this.eventsSdkClass.server) {
|
|
98
|
-
this.eventsSdkClass.socketIoClass.getSocketIoFunction(`v=${this.eventsSdkClass.server.Version}`)
|
|
99
|
-
}
|
|
100
|
-
if (loginSessionData.IdentityCode) {
|
|
101
|
-
this.token = loginSessionData.IdentityCode
|
|
102
|
-
this.eventsSdkClass.connect(ServerParameter.DEFAULT, true)
|
|
103
|
-
}
|
|
104
|
-
if (loginSessionData.RefreshToken && loginSessionData.IdentityCodeExpiry && this.eventsSdkClass.options.loginType === LoginType.USER) {
|
|
105
|
-
this.eventsSdkClass.options.refreshToken = loginSessionData.RefreshToken
|
|
106
|
-
this.eventsSdkClass.options.tokenExpiry = loginSessionData.IdentityCodeExpiry
|
|
107
|
-
this.handleTokenExpiry()
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
public handleTokenExpiry () {
|
|
112
|
-
let date: Date
|
|
113
|
-
|
|
114
|
-
if (this.eventsSdkClass.options.tokenExpiry) {
|
|
115
|
-
date = new Date(this.eventsSdkClass.options.tokenExpiry)
|
|
116
|
-
} else {
|
|
117
|
-
return
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
const timeout = date.getTime() - new Date().getTime() - 5000 // 5 seconds before expire
|
|
121
|
-
|
|
122
|
-
const maxAllowedTimeout = Math.min(timeout, 0x7FFFFFFF)
|
|
123
|
-
|
|
124
|
-
setTimeout(
|
|
125
|
-
async () => {
|
|
126
|
-
if (refreshTokenUrl && this.eventsSdkClass.options.refreshToken) {
|
|
127
|
-
this.eventsSdkClass.socketIoClass.closeAllConnections()
|
|
128
|
-
|
|
129
|
-
const refreshTokenResponse = await this.refreshToken(refreshTokenUrl, this.eventsSdkClass.options.refreshToken)
|
|
130
|
-
|
|
131
|
-
const settings = await this.getSettings(refreshTokenResponse.Data.AccessToken)
|
|
132
|
-
|
|
133
|
-
const loginSessionData: LoginSessionData = {
|
|
134
|
-
...refreshTokenResponse.Data,
|
|
135
|
-
...settings
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
this.onLoginResponse(loginSessionData)
|
|
139
|
-
|
|
140
|
-
await StorageClass.updateSessionStorageKey(this.storageKey, loginSessionData)
|
|
141
|
-
}
|
|
142
|
-
},
|
|
143
|
-
maxAllowedTimeout)
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
private async externalLogin (
|
|
147
|
-
url: string,
|
|
148
|
-
{ password, token, email }: LoginSessionPayload,
|
|
149
|
-
loginType: LoginType,
|
|
150
|
-
): Promise<ExternalLoginResponse> {
|
|
151
|
-
let body: ExternalLoginRequestBody
|
|
152
|
-
|
|
153
|
-
if (loginType === LoginType.TOKEN) {
|
|
154
|
-
body = {
|
|
155
|
-
identityType: LoginType.TOKEN,
|
|
156
|
-
token
|
|
157
|
-
}
|
|
158
|
-
} else {
|
|
159
|
-
body = {
|
|
160
|
-
identityType: LoginType.USER,
|
|
161
|
-
username: email,
|
|
162
|
-
password,
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
const res = await fetch(url, {
|
|
167
|
-
method: 'POST',
|
|
168
|
-
headers: {
|
|
169
|
-
'Content-Type': 'application/json'
|
|
170
|
-
},
|
|
171
|
-
body: JSON.stringify(body),
|
|
172
|
-
})
|
|
173
|
-
|
|
174
|
-
const data = await res.json()
|
|
175
|
-
|
|
176
|
-
if (data.error) {
|
|
177
|
-
throw new Error(data.error)
|
|
178
|
-
}
|
|
179
|
-
return data
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
private async getSettings (token: string): Promise<Settings> {
|
|
183
|
-
const res = await fetch(getSettingsUrl, {
|
|
184
|
-
headers: {
|
|
185
|
-
Authorization: `Bearer ${token}`
|
|
186
|
-
}
|
|
187
|
-
})
|
|
188
|
-
|
|
189
|
-
return res.json()
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
private async refreshToken (refreshTokenUrl: string, oldRefreshToken: string): Promise<ExternalLoginResponse> {
|
|
193
|
-
const res = await fetch(refreshTokenUrl, {
|
|
194
|
-
method: 'GET',
|
|
195
|
-
|
|
196
|
-
headers: {
|
|
197
|
-
'Content-Type': 'application/json',
|
|
198
|
-
Authorization: `Bearer ${oldRefreshToken}`
|
|
199
|
-
}
|
|
200
|
-
})
|
|
201
|
-
return res.json()
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
export default AuthClass
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
const newLoginUrl = 'https://loginapidev.voicenter.co.il/Auth/Login/Voicenter/Monitor'
|
|
2
|
-
const getSettingsUrl = 'https://loginapidev.voicenter.co.il/Application/GetSettings'
|
|
3
|
-
const refreshTokenUrl = 'https://loginapidev.voicenter.co.il/Auth/RefreshToken'
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export {
|
|
7
|
-
newLoginUrl,
|
|
8
|
-
getSettingsUrl,
|
|
9
|
-
refreshTokenUrl
|
|
10
|
-
}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { EventsSdkOptions } from '@/classes/events-sdk/events-sdk.types'
|
|
2
|
-
import { LoginType } from '@/enum/auth.enum'
|
|
3
|
-
|
|
4
|
-
export const eventsSdkDefaultOptions: EventsSdkOptions = {
|
|
5
|
-
fallbackServer: {
|
|
6
|
-
Domain: 'monitor5.voicenter.co.il',
|
|
7
|
-
Priority: 0,
|
|
8
|
-
Version: '1.3.7',
|
|
9
|
-
URLID: 1
|
|
10
|
-
},
|
|
11
|
-
token: '',
|
|
12
|
-
loginType: LoginType.TOKEN,
|
|
13
|
-
forceNew: true,
|
|
14
|
-
reconnectionDelay: 10000,
|
|
15
|
-
reconnectionDelayMax: 10000,
|
|
16
|
-
maxReconnectAttempts: 5,
|
|
17
|
-
timeout: 10000,
|
|
18
|
-
keepAliveTimeout: 60000,
|
|
19
|
-
idleInterval: 60000 * 5,
|
|
20
|
-
protocol: 'https',
|
|
21
|
-
transports: [ 'websocket' ],
|
|
22
|
-
upgrade: false,
|
|
23
|
-
serverFetchStrategy: 'static',
|
|
24
|
-
serverType: 0,
|
|
25
|
-
useLogger: false,
|
|
26
|
-
loggerSocketConnection: '',
|
|
27
|
-
loggerServer: 'http://127.0.0.1:3000/',
|
|
28
|
-
loggerConfig: {
|
|
29
|
-
logToConsole: true,
|
|
30
|
-
overloadGlobalConsole: false,
|
|
31
|
-
namespace: 'events-sdk',
|
|
32
|
-
socketEmitInterval: 10000,
|
|
33
|
-
},
|
|
34
|
-
loggerConnectOptions: {
|
|
35
|
-
reconnection: true,
|
|
36
|
-
reconnectionDelay: 5000,
|
|
37
|
-
reconnectionAttempts: 10,
|
|
38
|
-
perMessageDeflate: false,
|
|
39
|
-
upgrade: false,
|
|
40
|
-
transports: [ 'websocket' ],
|
|
41
|
-
debug: false
|
|
42
|
-
},
|
|
43
|
-
username: 'username',
|
|
44
|
-
password: '78253050510',
|
|
45
|
-
email: 'test2@status.com',
|
|
46
|
-
}
|