@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 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 'axios';
2
- import { AuthToken, ApiBaseUrl } from "./AuthStore";
3
- import { get } from 'svelte/store';
1
+ import axios from "axios";
4
2
 
5
- export class API
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 = get(ApiBaseUrl);
15
- this.token = get(AuthToken);
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
- console.log("GET " + this.baseurl + uri);
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.checkError(error);
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.checkError(error);
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: true })
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.checkError(error);
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: true });
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.checkError(error);
83
+ this.handleError(error);
80
84
  }
81
85
  }
82
86
 
83
87
  async put(uri, formData)
84
88
  {
85
89
  try {
86
- console.log(`PUT to ${this.baseurl}${uri}`);
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.checkError(error);
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
- console.log(`DELETE to ${this.baseurl}${uri}`);
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.checkError(error);
108
+ this.handleError(error);
107
109
  }
108
110
  }
109
111
 
110
- checkError(error)
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 " + status + ": " + message);
117
+ console.log("API Error: " + message);
115
118
  this.lastError = message;
116
- if (status === 401 || status === 403) {
117
- AuthToken.set(null);
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gandalan/weblibs",
3
- "version": "0.0.1",
3
+ "version": "0.0.7",
4
4
  "description": "WebLibs for Gandalan JS/TS/Svelte projects",
5
5
  "author": "Philipp Reif",
6
6
  "license": "ISC",
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%");
@@ -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
- }
@@ -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
- }