-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlstDotazNaServer.tex
71 lines (56 loc) · 1.88 KB
/
lstDotazNaServer.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
\begin{lstlisting}[caption=Dotaz na server vo Flux-e v store, label={lst:fetchDart}]
//zmena v stave - store
listen({
"$ORDER-$PACKED": _markOrderAs(ORDERPACKED),
...
});
...
_markOrderAs(String state) => (event) {
insert([ORDER, STATUS], state);
dispatch("$RETAILER-$ORDER-$EDIT-$STATUS",
data: getInOr(event, DATA, per({}))
);
};
//zmena poslana na server - store
listen({
"$RETAILER-$ORDER-$EDIT-$STATUS": _updateOrderStatus,
...
});
...
_updateOrderStatus(event) {
var eventData = getMap(event, DATA);
eventData = insertInOrCreate(eventData, STATUS, getInOr(data, [ORDER, STATUS]));
String id = getInOr(data, [ORDER, ID]);
DiscoveryMap aditionalData = new DiscoveryMap.fromJson(unpersist(eventData));
insert([ORDER], into(getInOr(data,[ORDER]), eventData));
dispatchAsync("$RETAILER-$ORDER-$UPDATED", resource.patch(aditionalData, id));
}
\end{lstlisting}
\bigskip
\begin{lstlisting}[caption=Dotaz na server v Redux-e cez middleware, label={lst:fetchJS}]
//zmena v stave - reducer
switch (action.type) {
...
case "CHANGE_ENTITY_FIELD": {
var {entity, id, field, value} = action.payload;
var schema = schemas(entity);
var newField = {}
newField[field] = value;
var oldEntity = denormalize(id, schema, state);
return saveEntity({...oldEntity, ...newField});
}
default:
return state;
}
//zmena poslana na server - middleware
const entityChangedEpic = (action$, { api }) =>
action$
.filter((action: Action) => action.type === "CHANGE_ENTITY_FIELD")
.mergeMap(action => {
var { entity, id, field, value } = action.payload;
return Observable.from(api.patchField(entity, id, field, value))
.mergeMap(response =>
Observable.from(entityPatched(entity, response)))
.catch(error => Observable.of(appError(error)));
});
\end{lstlisting}