summaryrefslogtreecommitdiffstats
path: root/sdnr/wt/odlux/framework/src/actions
diff options
context:
space:
mode:
authorsai-neetha <sai-neetha.phulmali@highstreet-technologies.com>2023-07-07 18:11:09 +0200
committersai-neetha <sai-neetha.phulmali@highstreet-technologies.com>2023-07-07 18:12:17 +0200
commitfad3167f42d585e3144547db4c6dd7d00ea7b18a (patch)
treed6578fd008c717748e6110c2072bbe65fcb91e2e /sdnr/wt/odlux/framework/src/actions
parent8efd8356d7ea705e282a72aeb74d4199cdf21851 (diff)
Update ODLUX
node version yarn version update Issue-ID: CCSDK-3923 Signed-off-by: sai-neetha <sai-neetha.phulmali@highstreet-technologies.com> Change-Id: Ibd3d6a6f45a14be4f1d175cf6fc5c8738aa11dea
Diffstat (limited to 'sdnr/wt/odlux/framework/src/actions')
-rw-r--r--sdnr/wt/odlux/framework/src/actions/authentication.ts78
-rw-r--r--sdnr/wt/odlux/framework/src/actions/settingsAction.ts8
2 files changed, 48 insertions, 38 deletions
diff --git a/sdnr/wt/odlux/framework/src/actions/authentication.ts b/sdnr/wt/odlux/framework/src/actions/authentication.ts
index f1d11de37..141249530 100644
--- a/sdnr/wt/odlux/framework/src/actions/authentication.ts
+++ b/sdnr/wt/odlux/framework/src/actions/authentication.ts
@@ -18,80 +18,90 @@
import { Dispatch } from '../flux/store';
import { Action } from '../flux/action';
import { AuthPolicy, User } from '../models/authentication';
-import { GeneralSettings, Settings } from '../models/settings';
-import { saveInitialSettings, SetGeneralSettingsAction, setGeneralSettingsAction } from './settingsAction';
+import { Settings } from '../models/settings';
+import { saveInitialSettings, SetGeneralSettingsAction } from './settingsAction';
import { endWebsocketSession } from '../services/notificationService';
import { endUserSession, startUserSession } from '../services/userSessionService';
import { IApplicationStoreState } from '../store/applicationStore';
export class UpdateUser extends Action {
- constructor (public user?: User) {
+ constructor(public user?: User) {
super();
}
}
export class UpdatePolicies extends Action {
- constructor (public authPolicies?: AuthPolicy[]) {
+ constructor(public authPolicies?: AuthPolicy[]) {
super();
}
}
-
-export const loginUserAction = (user?: User) => (dispatcher: Dispatch) =>{
-
- dispatcher(new UpdateUser(user));
- if(user){
- startUserSession(user);
- loadUserSettings(user, dispatcher);
- localStorage.setItem("userToken", user.toString());
- }
-}
-
export const logoutUser = () => (dispatcher: Dispatch, getState: () => IApplicationStoreState) =>{
- const {framework:{applicationState:{ authentication }, authenticationState: {user}}} = getState();
+ const { framework:{ applicationState:{ authentication }, authenticationState: { user } } } = getState();
dispatcher(new UpdateUser(undefined));
dispatcher(new SetGeneralSettingsAction(null));
endWebsocketSession();
endUserSession();
- localStorage.removeItem("userToken");
+ localStorage.removeItem('userToken');
//only call if a user is currently logged in
- if (authentication === "oauth" && user) {
+ if (authentication === 'oauth' && user) {
const url = window.location.origin;
- window.location.href=`${url}/oauth/logout`;
+ window.location.href = `${url}/oauth/logout`;
}
-}
-
-const loadUserSettings = (user: User | undefined, dispatcher: Dispatch) =>{
+};
+/**
+ * Loads the user settings for the given user and dispatches a `saveInitialSettings` action with the result.
+ * @param user The user for which to load the settings.
+ * @param dispatcher The dispatcher function to use for dispatching the `saveInitialSettings` action.
+ */
+const loadUserSettings = (user: User | undefined, dispatcher: Dispatch) => {
- //fetch used, because state change for user login is not done when frameworks restRequest call is started (and is accordingly undefined -> /userdata call yields 401, unauthorized) and triggering an action from inside the handler / login event is impossible
- //no timeout used, because it's bad practise to add a timeout to hopefully avoid a race condition
- //hence, fetch used to simply use supplied user data for getting settings
+ // fetch used, because state change for user login is not done when frameworks restRequest call is started (and is accordingly undefined -> /userdata call yields 401, unauthorized) and triggering an action from inside the handler / login event is impossible
+ // no timeout used, because it's bad practice to add a timeout to hopefully avoid a race condition
+ // hence, fetch used to simply use supplied user data for getting settings
- if(user && user.isValid){
+ if (user && user.isValid) {
- fetch("/userdata", {
+ fetch('/userdata', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
- 'Authorization': `${user.tokenType} ${user.token}`
- }
+ 'Authorization': `${user.tokenType} ${user.token}`,
+ },
}).then((res: Response)=>{
- if(res.status==200){
+ if (res.status == 200) {
return res.json();
- }else{
+ } else {
return null;
}
}).then((result:Settings)=>{
- dispatcher(saveInitialSettings(result));
- })
+ dispatcher(saveInitialSettings(result));
+ });
}
-} \ No newline at end of file
+};
+
+/**
+ * Dispatches an `UpdateUser` action with the given user and starts a user session if the user is defined.
+ * Also loads the user settings for the given user and dispatches a `saveInitialSettings` action with the result.
+ * Finally, saves the user token to local storage.
+ * @param user The user to be logged in.
+ * @param dispatcher The dispatcher function to use for dispatching the actions.
+ */
+export const loginUserAction = (user?: User) => (dispatcher: Dispatch) =>{
+
+ dispatcher(new UpdateUser(user));
+ if (user) {
+ startUserSession(user);
+ loadUserSettings(user, dispatcher);
+ localStorage.setItem('userToken', user.toString());
+ }
+}; \ No newline at end of file
diff --git a/sdnr/wt/odlux/framework/src/actions/settingsAction.ts b/sdnr/wt/odlux/framework/src/actions/settingsAction.ts
index 092b31814..fa45f239c 100644
--- a/sdnr/wt/odlux/framework/src/actions/settingsAction.ts
+++ b/sdnr/wt/odlux/framework/src/actions/settingsAction.ts
@@ -19,7 +19,7 @@
import { Dispatch } from "../flux/store";
import { Action } from "../flux/action";
import { GeneralSettings, Settings, TableSettings, TableSettingsColumn } from "../models/settings";
-import { getUserdata, saveUserdata } from "../services/userdataService";
+import { getUserData, saveUserData } from "../services/userdataService";
import { startWebsocketSession, suspendWebsocketSession } from "../services/notificationService";
import { IApplicationStoreState } from "../store/applicationStore";
@@ -67,7 +67,7 @@ export const setGeneralSettingsAction = (value: boolean) => (dispatcher: Dispatc
export const updateGeneralSettingsAction = (activateNotifications: boolean) => async (dispatcher: Dispatch) => {
const value: GeneralSettings = { general: { areNotificationsEnabled: activateNotifications } };
- const result = await saveUserdata("/general", JSON.stringify(value.general));
+ const result = await saveUserData("/general", JSON.stringify(value.general));
dispatcher(setGeneralSettingsAction(activateNotifications));
}
@@ -86,14 +86,14 @@ export const updateTableSettings = (tableName: string, columns: TableSettingsCol
// would only save latest entry
//const json = JSON.stringify({ [tableName]: { columns: columns } });
- const result = await saveUserdata("/tables", json);
+ const result = await saveUserData("/tables", json);
dispatcher(new SetTableSettings(tableName, columns));
}
export const getGeneralSettingsAction = () => async (dispatcher: Dispatch) => {
- const result = await getUserdata<GeneralSettings>();
+ const result = await getUserData<GeneralSettings>();
if (result && result.general) {
dispatcher(new SetGeneralSettingsAction(result.general.areNotificationsEnabled!))