-
Notifications
You must be signed in to change notification settings - Fork 0
/
weiClinic.js
64 lines (51 loc) · 1.72 KB
/
weiClinic.js
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
import CorticalStack from './corticalStack'
import Envelope from './Envelope'
class WeiClinic {
constructor() {
this.envelopes = []
this.stacks = []
}
create(stackId, envelopeId, realGender, name, age) {
const newStack = new CorticalStack(stackId, realGender, name, age, envelopeId)
const newEnvelope = new Envelope(envelopeId, realGender, age, stackId);
this.stacks = [
...this.stacks,
newStack
]
this.envelopes = [
...this.envelopes,
newEnvelope
]
return {
corticalStack: newStack,
envelope: newEnvelope
}
}
assignStackToEnvelope(stack, idEnvelope) {
this.envelopes.find(envelope => envelope.id === idEnvelope).idStack = stack.id
stack.idEnvelope = idEnvelope
}
removeStackFromEnvelope(stack) {
const envelopeAssigned = this.envelopes.find(e => e.id === stack.idEnvelope)
envelopeAssigned.idStack = null
stack.idEnvelope = null
}
killEnvelope(envelope) {
this.stacks.find(stack => stack.id === envelope.idStack).idEnvelope = null
this.envelopes = this.envelopes.filter(e => e.id !== envelope.id)
}
destroyStack(stack) {
this.stacks = this.stacks.filter(s => s.id !== stack.id)
if (!!stack.idEnvelope) {
this.envelopes = this.envelopes.filter(e => e.id !== stack.idEnvelope)
}
}
findEnvelope(idEnvelope) {
return this.envelopes.find(e => e.id === parseInt(idEnvelope))
}
findStack(idStack) {
return this.stacks.find(s => s.id === parseInt(idStack))
}
}
const weiClinic = new WeiClinic()
export let getClinic = () => weiClinic