Projekt

Obecné

Profil

Stáhnout (1.95 KB) Statistiky
| Větev: | Tag: | Revize:
1
import { createAsyncThunk } from "@reduxjs/toolkit"
2
import { SortOptions } from "../../types/general";
3
import { Note } from "../../types/note";
4
import { getPlanAllRequest } from "../../api/planservice";
5
import { Floor, Room } from "../../types/plan";
6

    
7
export const getFloorList = createAsyncThunk(
8
    "plan/getFloorList",
9
    async () => {
10
        try {
11
            try {
12
                const response = await getPlanAllRequest()
13
                if (response.status === 200) {
14

    
15
                    let floorsDict: Record<string, Floor> = {
16
                        "ground_floor": { label: "Ground floor", id: "ground_floor", roomList: [] },
17
                        "first_floor": { label: "First floor", id: "first_floor", roomList: [] },
18
                        "second_floor": { label: "Second floor", id: "second_floor", roomList: [] }
19
                    }
20

    
21
                    const unstructeredRoomList: Room[] = response.data
22

    
23
                    unstructeredRoomList.map((room) => {
24
                        if (room.floor in floorsDict) {
25
                            floorsDict[room.floor].roomList.push(room)
26
                        }
27
                        else {
28
                            floorsDict[room.floor] = { id: room.floor, label: room.floor, roomList: [room] }
29
                        }
30
                    }
31
                    )
32

    
33
                    let floorList = []
34

    
35
                    for (let key in floorsDict) {
36
                        let floor : Floor = floorsDict[key]
37
                        floorList.push(floor)
38
                    }
39

    
40
                    return floorList
41
                } else {
42
                    return Promise.reject(response.data ? response.data : "Get plan all request failed")
43
                }
44
            } catch (err: any) {
45
                return Promise.reject(err.response.data)
46
            }
47

    
48
        } catch (err: any) {
49
            console.log(err);
50
            return Promise.reject(err.response.data)
51
        }
52
    }
53
)
(5-5/7)