Create wt-odlux directory
[ccsdk/features.git] / sdnr / wt / odlux / apps / helpApp / src / actions / helpActions.ts
1 /**
2  * ============LICENSE_START========================================================================
3  * ONAP : ccsdk feature sdnr wt odlux
4  * =================================================================================================
5  * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
6  * =================================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
8  * in compliance with the License. You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software distributed under the License
13  * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
14  * or implied. See the License for the specific language governing permissions and limitations under
15  * the License.
16  * ============LICENSE_END==========================================================================
17  */
18 import { Action } from '../../../../framework/src/flux/action';
19 import { Dispatch } from '../../../../framework/src/flux/store';
20
21 import { TocTreeNode } from '../models/tocNode';
22 import helpService from '../services/helpService';
23
24 export class LoadTocAction extends Action {
25   constructor() {
26     super();
27
28   }
29 }
30
31 export class TocLoadedAction extends Action {
32   constructor(public toc?: TocTreeNode[], error?: string) {
33     super();
34     
35   }
36 }
37
38 export const requestTocAsyncAction = async (dispatch: Dispatch) => {
39   dispatch(new LoadTocAction);
40   try {
41     const toc = await helpService.getTableOfContents();
42     if (toc) {
43       dispatch(new TocLoadedAction(toc));
44     } else {
45       dispatch(new TocLoadedAction(undefined, "Could not load TOC."));
46     }
47   } catch (err) {
48     dispatch(new TocLoadedAction(undefined, err));
49   }
50 }
51
52 export class LoadDocumentAction extends Action {
53   constructor() {
54     super();
55
56   }
57 }
58
59 export class DocumentLoadedAction extends Action {
60   constructor(public document?: string, public documentPath?: string, error?: string) {
61     super();
62
63   }
64 }
65
66 export const requestDocumentAsyncActionCreator = (path: string) => async (dispatch: Dispatch) => {
67   dispatch(new LoadDocumentAction);
68   try {
69     const doc = await helpService.getDocument(path);
70     if (doc) {
71       dispatch(new DocumentLoadedAction(doc, path));
72     } else {
73       dispatch(new DocumentLoadedAction(undefined, undefined, "Could not load document."));
74     }
75   } catch (err) {
76     dispatch(new DocumentLoadedAction(undefined, undefined, err));
77   }
78 }