@gandalan/weblibs 0.0.1 → 0.0.7
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/README.md +1 -0
- package/api/IDAS.js +55 -0
- package/api/{api.js → RESTClient.js} +34 -33
- package/components/Dialog.svelte +20 -0
- package/package.json +1 -1
- package/api/AuthStore.js +0 -8
- package/api/mandantenApi.js +0 -12
- package/api/nachrichtenApi.js +0 -46
package/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
WebLibs for Gandalan JS/TS/Svelte projects
|
package/api/IDAS.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { RESTClient } from "./RESTClient";
|
|
2
|
+
|
|
3
|
+
let appToken = localStorage.getItem("IDAS_AppToken") || "66B70E0B-F7C4-4829-B12A-18AD309E3970";
|
|
4
|
+
let authToken = localStorage.getItem("IDAS_AuthToken");
|
|
5
|
+
//let mandantGuid = localStorage.getItem("IDAS_MandantGuid");
|
|
6
|
+
let apiBaseUrl = localStorage.getItem("IDAS_ApiBaseUrl") || "https://api.dev.idas-cloudservices.net/api";
|
|
7
|
+
//let siteBaseUrl = localStorage.getItem("SiteBaseUrl") || window.location.protocol + "//" + window.location.host;
|
|
8
|
+
let ssoAuthUrl = apiBaseUrl.replace(/\/api$/, "") + "/SSO?a=" + appToken + "&r=%target%?t=%token%%26m=%mandant%";
|
|
9
|
+
let restClient = new RESTClient(apiBaseUrl, authToken);
|
|
10
|
+
restClient.onError = (error, message) => {
|
|
11
|
+
if (message.indexOf("401") || message.indexOf("403"))
|
|
12
|
+
{
|
|
13
|
+
//console.log(message+" would remove Token");
|
|
14
|
+
localStorage.removeItem("IDAS_AuthToken");
|
|
15
|
+
restClient.authenticateWithSSO();
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export class IDAS
|
|
20
|
+
{
|
|
21
|
+
async authenticate(authDTO) {
|
|
22
|
+
authDTO.AppToken = appToken;
|
|
23
|
+
var { data } = await restClient.post("/Login/Authenticate", authDTO);
|
|
24
|
+
console.log(data);
|
|
25
|
+
if (data?.Token)
|
|
26
|
+
{
|
|
27
|
+
authToken = data.Token;
|
|
28
|
+
localStorage.setItem("IDAS_AuthToken", authToken);
|
|
29
|
+
restClient = new RESTClient(apiBaseUrl, authToken);
|
|
30
|
+
}
|
|
31
|
+
return data;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
async authenticateWithSSO() {
|
|
35
|
+
var ssoURL = ssoAuthUrl.replace("%target%", window.location.origin);
|
|
36
|
+
window.location = ssoURL;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
mandanten = {
|
|
40
|
+
async getAll() { return await restClient.get("/Mandanten"); },
|
|
41
|
+
async get(guid) { return await restClient.get("/Mandanten/" + guid); },
|
|
42
|
+
async save(m) { await restClient.put("/Mandanten", m); }
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
benutzer = {
|
|
46
|
+
async getAll(mandantGuid) { return await restClient.get("/BenutzerListe/" + mandantGuid + "/?mitRollenUndRechten=true"); },
|
|
47
|
+
async get(guid) { return await restClient.get("/Benutzer/" + guid); },
|
|
48
|
+
async save(m) { await restClient.put("/Benutzer", m); }
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
rollen = {
|
|
52
|
+
async getAll() { return await restClient.get("/Rollen"); },
|
|
53
|
+
async save(m) { await restClient.put("/Rollen", m); }
|
|
54
|
+
};
|
|
55
|
+
}
|
|
@@ -1,35 +1,44 @@
|
|
|
1
|
-
import axios from
|
|
2
|
-
import { AuthToken, ApiBaseUrl } from "./AuthStore";
|
|
3
|
-
import { get } from 'svelte/store';
|
|
1
|
+
import axios from "axios";
|
|
4
2
|
|
|
5
|
-
export
|
|
3
|
+
/*export let AppToken = "66B70E0B-F7C4-4829-B12A-18AD309E3970";
|
|
4
|
+
export let AuthToken = localStorage.getItem("AuthToken");
|
|
5
|
+
export let MandantGuid = localStorage.getItem("MandantGuid");
|
|
6
|
+
export let ApiBaseUrl = localStorage.getItem("ApiBaseUrl") || "https://api.dev.idas-cloudservices.net/api";
|
|
7
|
+
export let SiteBaseUrl = window.location.origin;
|
|
8
|
+
export let SSOAuthUrl = ApiBaseUrl.replace("/api", "") + "/SSO?a=" + AppToken + "&r=%target%?t=%token%%26m=%mandant%";*/
|
|
9
|
+
|
|
10
|
+
export class RESTClient
|
|
6
11
|
{
|
|
7
12
|
lastError = '';
|
|
8
13
|
token = "";
|
|
9
14
|
baseurl = "";
|
|
10
15
|
|
|
11
|
-
constructor()
|
|
16
|
+
constructor(url, token)
|
|
12
17
|
{
|
|
13
18
|
this.lastError = "";
|
|
14
|
-
this.baseurl =
|
|
15
|
-
this.token =
|
|
19
|
+
this.baseurl = url;
|
|
20
|
+
this.token = token;
|
|
16
21
|
console.log("Base: " + this.baseurl + " Token: " + this.token);
|
|
17
22
|
|
|
18
23
|
if (this.token) {
|
|
19
24
|
axios.defaults.headers.common['X-Gdl-AuthToken'] = this.token;
|
|
20
25
|
}
|
|
26
|
+
|
|
27
|
+
axios.interceptors.request.use(req => {
|
|
28
|
+
console.log(`${req.method} ${req.url}`);
|
|
29
|
+
return req;
|
|
30
|
+
});
|
|
21
31
|
}
|
|
22
32
|
|
|
23
33
|
async get(uri)
|
|
24
34
|
{
|
|
25
35
|
try {
|
|
26
|
-
|
|
27
|
-
const response = await axios.get(this.baseurl + uri);
|
|
36
|
+
const response = await axios.get(this.baseurl + uri, { withCredentials: false });
|
|
28
37
|
this.lastError = '';
|
|
29
38
|
return response.data;
|
|
30
39
|
}
|
|
31
40
|
catch (error) {
|
|
32
|
-
this.
|
|
41
|
+
this.handleError(error);
|
|
33
42
|
}
|
|
34
43
|
}
|
|
35
44
|
|
|
@@ -37,19 +46,16 @@ export class API
|
|
|
37
46
|
{
|
|
38
47
|
try {
|
|
39
48
|
const response = await axios.get(this.baseurl + uri, { responseType: 'blob' });
|
|
40
|
-
console.log(response);
|
|
41
|
-
|
|
42
49
|
let fileName = "1000.pdf";
|
|
43
50
|
if (response.headers["content-disposition"]) {
|
|
44
51
|
fileName = response.headers["content-disposition"].split(';')[1];
|
|
45
52
|
fileName = fileName.replace("filename=", "").trim();
|
|
46
53
|
}
|
|
47
|
-
|
|
48
54
|
this.lastError = '';
|
|
49
55
|
return { data: response.data, filename: fileName, contentType: "application/pdf" };
|
|
50
56
|
}
|
|
51
57
|
catch (error) {
|
|
52
|
-
this.
|
|
58
|
+
this.handleError(error);
|
|
53
59
|
}
|
|
54
60
|
}
|
|
55
61
|
|
|
@@ -57,12 +63,11 @@ export class API
|
|
|
57
63
|
{
|
|
58
64
|
let response = {};
|
|
59
65
|
try {
|
|
60
|
-
response = await axios.get(this.baseurl + uri, { withCredentials:
|
|
61
|
-
console.log(response);
|
|
66
|
+
response = await axios.get(this.baseurl + uri, { withCredentials: false })
|
|
62
67
|
this.lastError = '';
|
|
63
68
|
}
|
|
64
69
|
catch (error) {
|
|
65
|
-
this.
|
|
70
|
+
this.handleError(error);
|
|
66
71
|
}
|
|
67
72
|
return response;
|
|
68
73
|
}
|
|
@@ -70,26 +75,24 @@ export class API
|
|
|
70
75
|
async post(uri, formData)
|
|
71
76
|
{
|
|
72
77
|
try {
|
|
73
|
-
const response = await axios.post(this.baseurl + uri, formData, { withCredentials:
|
|
74
|
-
//console.log(JSON.stringify(response));
|
|
78
|
+
const response = await axios.post(this.baseurl + uri, formData, { withCredentials: false });
|
|
75
79
|
this.lastError = '';
|
|
76
80
|
return response;
|
|
77
81
|
}
|
|
78
82
|
catch (error) {
|
|
79
|
-
this.
|
|
83
|
+
this.handleError(error);
|
|
80
84
|
}
|
|
81
85
|
}
|
|
82
86
|
|
|
83
87
|
async put(uri, formData)
|
|
84
88
|
{
|
|
85
89
|
try {
|
|
86
|
-
|
|
87
|
-
const response = await axios.put(this.baseurl + uri, formData, { withCredentials: true });
|
|
90
|
+
const response = await axios.put(this.baseurl + uri, formData, { withCredentials: false });
|
|
88
91
|
this.lastError = '';
|
|
89
92
|
return response;
|
|
90
93
|
}
|
|
91
94
|
catch (error) {
|
|
92
|
-
this.
|
|
95
|
+
this.handleError(error);
|
|
93
96
|
}
|
|
94
97
|
}
|
|
95
98
|
|
|
@@ -97,25 +100,23 @@ export class API
|
|
|
97
100
|
{
|
|
98
101
|
try
|
|
99
102
|
{
|
|
100
|
-
|
|
101
|
-
const response = await axios.delete(this.baseurl + uri, { withCredentials: true });
|
|
103
|
+
const response = await axios.delete(this.baseurl + uri, { withCredentials: false });
|
|
102
104
|
this.lastError = '';
|
|
103
105
|
return response;
|
|
104
106
|
}
|
|
105
107
|
catch (error) {
|
|
106
|
-
this.
|
|
108
|
+
this.handleError(error);
|
|
107
109
|
}
|
|
108
110
|
}
|
|
109
111
|
|
|
110
|
-
|
|
112
|
+
onError = (error, message) => {};
|
|
113
|
+
|
|
114
|
+
handleError(error)
|
|
111
115
|
{
|
|
112
|
-
let status = error && error.response ? error.response.status : -1;
|
|
113
116
|
let message = error ? error.message : "?";
|
|
114
|
-
console.log("API Error
|
|
117
|
+
console.log("API Error: " + message);
|
|
115
118
|
this.lastError = message;
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
localStorage.setItem("AuthToken", null);
|
|
119
|
-
}
|
|
119
|
+
this.onError(error, message);
|
|
120
|
+
throw error;
|
|
120
121
|
}
|
|
121
122
|
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
export let isOpen = false;
|
|
3
|
+
</script>
|
|
4
|
+
|
|
5
|
+
{#if isOpen}
|
|
6
|
+
<div class="z-10 absolute w-screen h-screen bg-black left-0 top-0 bg-opacity-50">
|
|
7
|
+
</div>
|
|
8
|
+
|
|
9
|
+
<div class="z-10 absolute left-[20vw] top-[10vw] w-[60vw] shadow-xl shadow-slate-700 bg-white p-8">
|
|
10
|
+
<div>
|
|
11
|
+
<h3 class="text-lg font-bold mb-2"><slot name="title"/></h3>
|
|
12
|
+
</div>
|
|
13
|
+
<div>
|
|
14
|
+
<slot />
|
|
15
|
+
</div>
|
|
16
|
+
<div class="mt-8">
|
|
17
|
+
<button class="float-right bg-gray-600 text-white p-4" on:click={() => isOpen = false}>Schließen</button>
|
|
18
|
+
</div>
|
|
19
|
+
</div>
|
|
20
|
+
{/if}
|
package/package.json
CHANGED
package/api/AuthStore.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { get, writable } from "svelte/store";
|
|
2
|
-
|
|
3
|
-
export const APP_TOKEN = "66B70E0B-F7C4-4829-B12A-18AD309E3970";
|
|
4
|
-
export const AuthToken = writable(localStorage.getItem("AuthToken"));
|
|
5
|
-
export const MandantGuid = writable(localStorage.getItem("MandantGuid"));
|
|
6
|
-
export const ApiBaseUrl = writable(localStorage.getItem("ApiBaseUrl") || "https://api.dev.idas-cloudservices.net/api");
|
|
7
|
-
export const SiteBaseUrl = writable(window.location.protocol + "//" + window.location.host);
|
|
8
|
-
export const SSOAuthUrl = writable(get(ApiBaseUrl).replace("/api", "") + "/SSO?a=" + APP_TOKEN + "&r=%target%?t=%token%%26m=%mandant%");
|
package/api/mandantenApi.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { API } from './api';
|
|
2
|
-
import { AuthToken } from "./AuthStore";
|
|
3
|
-
//import mandanten from '../data/mandanten.json';
|
|
4
|
-
|
|
5
|
-
export function getAll()
|
|
6
|
-
{
|
|
7
|
-
//return mandanten;
|
|
8
|
-
if (AuthToken)
|
|
9
|
-
return new API().get('/Mandanten');
|
|
10
|
-
else
|
|
11
|
-
return [];
|
|
12
|
-
}
|
package/api/nachrichtenApi.js
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { API } from './api';
|
|
2
|
-
import { get } from 'svelte/store'
|
|
3
|
-
import { MandantGuid } from "./AuthStore";
|
|
4
|
-
|
|
5
|
-
const niceContextNames = new Map();
|
|
6
|
-
niceContextNames.set("position", "Positionserfassung");
|
|
7
|
-
niceContextNames.set("start", "Programmstart");
|
|
8
|
-
|
|
9
|
-
export async function getAll()
|
|
10
|
-
{
|
|
11
|
-
let api = getNewAPI();
|
|
12
|
-
let result = await api.get('/NachrichtenKonfig?besitzerMandantGuid=' + get(MandantGuid));
|
|
13
|
-
result = result || [];
|
|
14
|
-
result.forEach(n => {
|
|
15
|
-
n.anzeigeText = n.nachricht && n.nachricht.length > 30 ? n.nachricht.substr(0,30) + "..." : n.nachricht;
|
|
16
|
-
if (n.context && niceContextNames.has(n.context))
|
|
17
|
-
{
|
|
18
|
-
n.anzeigeText += " (Anzeige bei " + niceContextNames.get(n.context) + ")";
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
return result;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export async function addNachricht(nachricht)
|
|
25
|
-
{
|
|
26
|
-
nachricht.besitzerMandantGuid = get(MandantGuid);
|
|
27
|
-
if (!nachricht.gueltigAb) nachricht.gueltigAb = null;
|
|
28
|
-
if (!nachricht.gueltigBis) nachricht.gueltigBis = null;
|
|
29
|
-
|
|
30
|
-
let api = getNewAPI();
|
|
31
|
-
console.log(nachricht);
|
|
32
|
-
return await api.post('/NachrichtenKonfig', nachricht);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
export async function removeNachricht(nachricht)
|
|
36
|
-
{
|
|
37
|
-
let api = getNewAPI();
|
|
38
|
-
return await api.delete('/NachrichtenKonfig?nachrichtGuid=' + nachricht.nachrichtGuid);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
function getNewAPI()
|
|
42
|
-
{
|
|
43
|
-
let api = new API();
|
|
44
|
-
api.baseurl = "";
|
|
45
|
-
return api;
|
|
46
|
-
}
|