@fairwords/loopback-connector-es 1.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/cacert.pem ADDED
@@ -0,0 +1,141 @@
1
+ CONNECTED(00000003)
2
+ ---
3
+ Certificate chain
4
+ 0 s:/OU=Domain Control Validated/OU=EssentialSSL Wildcard/CN=*.shoppinpal.com
5
+ i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain Validation Secure Server CA
6
+ -----BEGIN CERTIFICATE-----
7
+ MIIFWTCCBEGgAwIBAgIRAK2QR2YGpGTbDQBJm0GMF04wDQYJKoZIhvcNAQELBQAw
8
+ gZAxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO
9
+ BgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMTYwNAYD
10
+ VQQDEy1DT01PRE8gUlNBIERvbWFpbiBWYWxpZGF0aW9uIFNlY3VyZSBTZXJ2ZXIg
11
+ Q0EwHhcNMTUwNDA1MDAwMDAwWhcNMTYwNzAzMjM1OTU5WjBeMSEwHwYDVQQLExhE
12
+ b21haW4gQ29udHJvbCBWYWxpZGF0ZWQxHjAcBgNVBAsTFUVzc2VudGlhbFNTTCBX
13
+ aWxkY2FyZDEZMBcGA1UEAxQQKi5zaG9wcGlucGFsLmNvbTCCASIwDQYJKoZIhvcN
14
+ AQEBBQADggEPADCCAQoCggEBANobBwcN03si2pO2rVw6VnC6FGeWQhW+h7OnKP5x
15
+ IOayEFqSgYpM+ExpOHpX+0FsvrhqP4UyXMA4RutXryWxsvrQ/KPBsr+283rQEB/F
16
+ ICMg07pggwtftuRtOj4CMjTsBl8xRrXWO1epAImUrlJSqUOUvDhmvnRsRQtyFnT7
17
+ libYsk7/oKIAQVNC2CiPVQUzS+yF3f5fQ/0V+loBof9AD6MsHUW1e1c3SoFQWlTy
18
+ 8rBnQsJsM4/2fMTtgujFSizKKkYDbJM1euHvExTDej16x8pCKa/ca9da2/bfHwJ0
19
+ btSFLXMxKsjw+5DOrlSZefvhO1BWG/JM0IgqjpYwlg3RbA0CAwEAAaOCAd0wggHZ
20
+ MB8GA1UdIwQYMBaAFJCvajqUWgvYkOoSVnPfQ7Q6KNrnMB0GA1UdDgQWBBQsZYWb
21
+ MFaio699b72uEZmLwzjvhzAOBgNVHQ8BAf8EBAMCBaAwDAYDVR0TAQH/BAIwADAd
22
+ BgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwTwYDVR0gBEgwRjA6BgsrBgEE
23
+ AbIxAQICBzArMCkGCCsGAQUFBwIBFh1odHRwczovL3NlY3VyZS5jb21vZG8uY29t
24
+ L0NQUzAIBgZngQwBAgEwVAYDVR0fBE0wSzBJoEegRYZDaHR0cDovL2NybC5jb21v
25
+ ZG9jYS5jb20vQ09NT0RPUlNBRG9tYWluVmFsaWRhdGlvblNlY3VyZVNlcnZlckNB
26
+ LmNybDCBhQYIKwYBBQUHAQEEeTB3ME8GCCsGAQUFBzAChkNodHRwOi8vY3J0LmNv
27
+ bW9kb2NhLmNvbS9DT01PRE9SU0FEb21haW5WYWxpZGF0aW9uU2VjdXJlU2VydmVy
28
+ Q0EuY3J0MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5jb21vZG9jYS5jb20wKwYD
29
+ VR0RBCQwIoIQKi5zaG9wcGlucGFsLmNvbYIOc2hvcHBpbnBhbC5jb20wDQYJKoZI
30
+ hvcNAQELBQADggEBAClNtFgZ0I1f0XFFZnQwJ69z9wICqer7lOAidc9Ur2pAxmuW
31
+ 2YA7sdR7pWDTJI5RZXZxNbxdBXwrjozgT182RmdM53ak5OCRxUOrG8KRpEKeO6oV
32
+ Z6HaV8354tv0uQ4tKCW9+ap5R3q5B0pq2ZN4PEsUzuym7b4ukuVyBvuwvYR6F9bT
33
+ TE3OhWXVFzNyJevrGZhqEFDSh7Pq1hz5hf+msr8lXsRgbkYU2t1Rbzbv3oNYRWph
34
+ jLPTfVI5CjGB7McpMaL3xSiAqwEHtG77IP0IEkE7oWoeblaX0rQP0PbuorXVtpvR
35
+ eHGgWFxAmvGiiu6+b09rkIx18LvwxeGla7rVKM0=
36
+ -----END CERTIFICATE-----
37
+ 1 s:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain Validation Secure Server CA
38
+ i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority
39
+ -----BEGIN CERTIFICATE-----
40
+ MIIGCDCCA/CgAwIBAgIQKy5u6tl1NmwUim7bo3yMBzANBgkqhkiG9w0BAQwFADCB
41
+ hTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
42
+ A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV
43
+ BAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQwMjEy
44
+ MDAwMDAwWhcNMjkwMjExMjM1OTU5WjCBkDELMAkGA1UEBhMCR0IxGzAZBgNVBAgT
45
+ EkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
46
+ Q09NT0RPIENBIExpbWl0ZWQxNjA0BgNVBAMTLUNPTU9ETyBSU0EgRG9tYWluIFZh
47
+ bGlkYXRpb24gU2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
48
+ ADCCAQoCggEBAI7CAhnhoFmk6zg1jSz9AdDTScBkxwtiBUUWOqigwAwCfx3M28Sh
49
+ bXcDow+G+eMGnD4LgYqbSRutA776S9uMIO3Vzl5ljj4Nr0zCsLdFXlIvNN5IJGS0
50
+ Qa4Al/e+Z96e0HqnU4A7fK31llVvl0cKfIWLIpeNs4TgllfQcBhglo/uLQeTnaG6
51
+ ytHNe+nEKpooIZFNb5JPJaXyejXdJtxGpdCsWTWM/06RQ1A/WZMebFEh7lgUq/51
52
+ UHg+TLAchhP6a5i84DuUHoVS3AOTJBhuyydRReZw3iVDpA3hSqXttn7IzW3uLh0n
53
+ c13cRTCAquOyQQuvvUSH2rnlG51/ruWFgqUCAwEAAaOCAWUwggFhMB8GA1UdIwQY
54
+ MBaAFLuvfgI9+qbxPISOre44mOzZMjLUMB0GA1UdDgQWBBSQr2o6lFoL2JDqElZz
55
+ 30O0Oija5zAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNV
56
+ HSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwGwYDVR0gBBQwEjAGBgRVHSAAMAgG
57
+ BmeBDAECATBMBgNVHR8ERTBDMEGgP6A9hjtodHRwOi8vY3JsLmNvbW9kb2NhLmNv
58
+ bS9DT01PRE9SU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDBxBggrBgEFBQcB
59
+ AQRlMGMwOwYIKwYBBQUHMAKGL2h0dHA6Ly9jcnQuY29tb2RvY2EuY29tL0NPTU9E
60
+ T1JTQUFkZFRydXN0Q0EuY3J0MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5jb21v
61
+ ZG9jYS5jb20wDQYJKoZIhvcNAQEMBQADggIBAE4rdk+SHGI2ibp3wScF9BzWRJ2p
62
+ mj6q1WZmAT7qSeaiNbz69t2Vjpk1mA42GHWx3d1Qcnyu3HeIzg/3kCDKo2cuH1Z/
63
+ e+FE6kKVxF0NAVBGFfKBiVlsit2M8RKhjTpCipj4SzR7JzsItG8kO3KdY3RYPBps
64
+ P0/HEZrIqPW1N+8QRcZs2eBelSaz662jue5/DJpmNXMyYE7l3YphLG5SEXdoltMY
65
+ dVEVABt0iN3hxzgEQyjpFv3ZBdRdRydg1vs4O2xyopT4Qhrf7W8GjEXCBgCq5Ojc
66
+ 2bXhc3js9iPc0d1sjhqPpepUfJa3w/5Vjo1JXvxku88+vZbrac2/4EjxYoIQ5QxG
67
+ V/Iz2tDIY+3GH5QFlkoakdH368+PUq4NCNk+qKBR6cGHdNXJ93SrLlP7u3r7l+L4
68
+ HyaPs9Kg4DdbKDsx5Q5XLVq4rXmsXiBmGqW5prU5wfWYQ//u+aen/e7KJD2AFsQX
69
+ j4rBYKEMrltDR5FL1ZoXX/nUh8HCjLfn4g8wGTeGrODcQgPmlKidrv0PJFGUzpII
70
+ 0fxQ8ANAe4hZ7Q7drNJ3gjTcBpUC2JD5Leo31Rpg0Gcg19hCC0Wvgmje3WYkN5Ap
71
+ lBlGGSW4gNfL1IYoakRwJiNiqZ+Gb7+6kHDSVneFeO/qJakXzlByjAA6quPbYzSf
72
+ +AZxAeKCINT+b72x
73
+ -----END CERTIFICATE-----
74
+ 2 s:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority
75
+ i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
76
+ -----BEGIN CERTIFICATE-----
77
+ MIIFdDCCBFygAwIBAgIQJ2buVutJ846r13Ci/ITeIjANBgkqhkiG9w0BAQwFADBv
78
+ MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFk
79
+ ZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBF
80
+ eHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFow
81
+ gYUxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO
82
+ BgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMSswKQYD
83
+ VQQDEyJDT01PRE8gUlNBIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkq
84
+ hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAkehUktIKVrGsDSTdxc9EZ3SZKzejfSNw
85
+ AHG8U9/E+ioSj0t/EFa9n3Byt2F/yUsPF6c947AEYe7/EZfH9IY+Cvo+XPmT5jR6
86
+ 2RRr55yzhaCCenavcZDX7P0N+pxs+t+wgvQUfvm+xKYvT3+Zf7X8Z0NyvQwA1onr
87
+ ayzT7Y+YHBSrfuXjbvzYqOSSJNpDa2K4Vf3qwbxstovzDo2a5JtsaZn4eEgwRdWt
88
+ 4Q08RWD8MpZRJ7xnw8outmvqRsfHIKCxH2XeSAi6pE6p8oNGN4Tr6MyBSENnTnIq
89
+ m1y9TBsoilwie7SrmNnu4FGDwwlGTm0+mfqVF9p8M1dBPI1R7Qu2XK8sYxrfV8g/
90
+ vOldxJuvRZnio1oktLqpVj3Pb6r/SVi+8Kj/9Lit6Tf7urj0Czr56ENCHonYhMsT
91
+ 8dm74YlguIwoVqwUHZwK53Hrzw7dPamWoUi9PPevtQ0iTMARgexWO/bTouJbt7IE
92
+ IlKVgJNp6I5MZfGRAy1wdALqi2cVKWlSArvX31BqVUa/oKMoYX9w0MOiqiwhqkfO
93
+ KJwGRXa/ghgntNWutMtQ5mv0TIZxMOmm3xaG4Nj/QN370EKIf6MzOi5cHkERgWPO
94
+ GHFrK+ymircxXDpqR+DDeVnWIBqv8mqYqnK8V0rSS527EPywTEHl7R09XiidnMy/
95
+ s1Hap0flhFMCAwEAAaOB9DCB8TAfBgNVHSMEGDAWgBStvZh6NLQm9/rEJlTvA73g
96
+ JMtUGjAdBgNVHQ4EFgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQD
97
+ AgGGMA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0gBAowCDAGBgRVHSAAMEQGA1UdHwQ9
98
+ MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9BZGRUcnVzdEV4dGVy
99
+ bmFsQ0FSb290LmNybDA1BggrBgEFBQcBAQQpMCcwJQYIKwYBBQUHMAGGGWh0dHA6
100
+ Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJKoZIhvcNAQEMBQADggEBAGS/g/FfmoXQ
101
+ zbihKVcN6Fr30ek+8nYEbvFScLsePP9NDXRqzIGCJdPDoCpdTPW6i6FtxFQJdcfj
102
+ Jw5dhHk3QBN39bSsHNA7qxcS1u80GH4r6XnTq1dFDK8o+tDb5VCViLvfhVdpfZLY
103
+ Uspzgb8c8+a4bmYRBbMelC1/kZWSWfFMzqORcUx8Rww7Cxn2obFshj5cqsQugsv5
104
+ B5a6SE2Q8pTIqXOi6wZ7I53eovNNVZ96YUWYGGjHXkBrI/V5eu+MtWuLt29G9Hvx
105
+ PUsE2JOAWVrgQSQdso8VYFhH2+9uRv0V9dlfmrPb2LjkQLPNlzmuhbsdjrzch5vR
106
+ pu/xO28QOG8=
107
+ -----END CERTIFICATE-----
108
+ 3 s:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
109
+ i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
110
+ -----BEGIN CERTIFICATE-----
111
+ MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
112
+ MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
113
+ IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
114
+ MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
115
+ FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
116
+ bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
117
+ dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
118
+ H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
119
+ uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
120
+ mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
121
+ a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
122
+ E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
123
+ WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
124
+ VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
125
+ Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
126
+ cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
127
+ IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
128
+ AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
129
+ YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
130
+ 6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
131
+ Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
132
+ c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
133
+ mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
134
+ -----END CERTIFICATE-----
135
+ ---
136
+ Server certificate
137
+ subject=/OU=Domain Control Validated/OU=EssentialSSL Wildcard/CN=*.shoppinpal.com
138
+ issuer=/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain Validation Secure Server CA
139
+ ---
140
+ No client certificate CA names sent
141
+ ---
@@ -0,0 +1,22 @@
1
+ ## Version Selection for compose file
2
+ # https://docs.docker.com/compose/compose-file/#/versioning
3
+ version: '2'
4
+ services:
5
+ es_v1:
6
+ image: elasticsearch:1
7
+ ports:
8
+ - "9201:9200"
9
+ volumes:
10
+ - .:/apps
11
+ entrypoint: /apps/docker-entrypoint-es1-plugins.sh
12
+ es_v2:
13
+ image: elasticsearch:2
14
+ ports:
15
+ - "9202:9200"
16
+ volumes:
17
+ - .:/apps
18
+ entrypoint: /apps/docker-entrypoint-es2-plugins.sh
19
+ es_v5:
20
+ image: elasticsearch:5
21
+ ports:
22
+ - "9203:9200"
@@ -0,0 +1,11 @@
1
+ ## Version Selection for compose file
2
+ # https://docs.docker.com/compose/compose-file/#/versioning
3
+ version: '2'
4
+ services:
5
+ es_v1:
6
+ image: elasticsearch:1
7
+ ports:
8
+ - "9201:9200"
9
+ volumes:
10
+ - .:/apps
11
+ entrypoint: /apps/docker-entrypoint-es1-plugins.sh
@@ -0,0 +1,11 @@
1
+ ## Version Selection for compose file
2
+ # https://docs.docker.com/compose/compose-file/#/versioning
3
+ version: '2'
4
+ services:
5
+ es_v2:
6
+ image: elasticsearch:2
7
+ ports:
8
+ - "9202:9200"
9
+ volumes:
10
+ - .:/apps
11
+ entrypoint: /apps/docker-entrypoint-es2-plugins.sh
@@ -0,0 +1,8 @@
1
+ ## Version Selection for compose file
2
+ # https://docs.docker.com/compose/compose-file/#/versioning
3
+ version: '2'
4
+ services:
5
+ es_v5:
6
+ image: elasticsearch:5
7
+ ports:
8
+ - "9203:9200"
@@ -0,0 +1,20 @@
1
+ ## Version Selection for compose file
2
+ # https://docs.docker.com/compose/compose-file/#/versioning
3
+ version: '2'
4
+ services:
5
+ web:
6
+ image: node:${NODE_VERSION}
7
+ working_dir: /apps/examples
8
+ entrypoint: /apps/docker-entrypoint.sh
9
+ command: node server/server.js
10
+ environment:
11
+ DEBUG: boot:test:*
12
+ ports:
13
+ - "80:3000"
14
+ volumes:
15
+ - .:/apps
16
+ depends_on:
17
+ - es
18
+ restart: always
19
+ es:
20
+ image: elasticsearch:${ES_VERSION}
@@ -0,0 +1,10 @@
1
+ #!/bin/bash
2
+ # setting up prerequisites
3
+
4
+ # re-runs will give an error that is harmless:
5
+
6
+ # https://github.com/mobz/elasticsearch-head/#running-as-a-plugin-of-elasticsearch
7
+ plugin -install mobz/elasticsearch-head/1.x
8
+
9
+ #exec /docker-entrypoint.sh elasticsearch
10
+ exec elasticsearch -Des.insecure.allow.root=true
@@ -0,0 +1,21 @@
1
+ #!/bin/bash
2
+ # setting up prerequisites
3
+
4
+ # re-runs will give an error that is harmless:
5
+ # > ERROR: plugin directory /usr/share/elasticsearch/plugins/delete-by-query already exists.
6
+ # > To update the plugin, uninstall it first using 'remove delete-by-query' command
7
+ #plugin install delete-by-query
8
+
9
+ # https://github.com/mobz/elasticsearch-head/#running-as-a-plugin-of-elasticsearch
10
+ plugin install mobz/elasticsearch-head
11
+
12
+
13
+ # access it at /_plugin/elasticsearch-inquisitor/
14
+ plugin install polyfractal/elasticsearch-inquisitor
15
+
16
+ #exec /docker-entrypoint.sh elasticsearch
17
+ exec elasticsearch -Des.insecure.allow.root=true \
18
+ --script.inline=true \
19
+ --script.indexed=true \
20
+ --script.engine.groovy.inline.search=on \
21
+ --script.engine.groovy.inline.update=on
package/index.js ADDED
@@ -0,0 +1 @@
1
+ module.exports = require('./lib/esConnector');
@@ -0,0 +1,75 @@
1
+ 'use strict';
2
+
3
+ var log = null;
4
+ var _ = null;
5
+ var Promise = null;
6
+
7
+ /**
8
+ * `Connector._models` are all known at the time `automigrate` is called
9
+ * so it should be possible to work on all elasticsearch indicies and mappings at one time
10
+ * unlike with `.connect()` when the models were still unknown so
11
+ * initializing ES indicies and mappings in one go wasn't possible.
12
+ *
13
+ * @param models
14
+ * @param cb
15
+ */
16
+ var automigrate = function (models, cb) {
17
+ log('ESConnector.prototype.automigrate', 'models:', models);
18
+ var self = this;
19
+ if (self.db) {
20
+ if ((!cb) && ('function' === typeof models)) {
21
+ cb = models;
22
+ models = undefined;
23
+ }
24
+ // First argument is a model name
25
+ if ('string' === typeof models) {
26
+ models = [models];
27
+ }
28
+ log('ESConnector.prototype.automigrate', 'models', models);
29
+
30
+ models = models || Object.keys(self._models);
31
+
32
+ var indices = [];
33
+
34
+ _.forEach(models, function (model){
35
+ log('ESConnector.prototype.automigrate', 'model', model);
36
+ var defaults = self.addDefaults(model);
37
+ indices.push(defaults.index);
38
+ });
39
+
40
+ indices = _.uniq(indices);
41
+
42
+ log('ESConnector.prototype.automigrate', 'calling self.db.indices.delete() for indices:', indices);
43
+ //cb(); // TODO:
44
+ self.db.indices.delete({index: indices, ignore: 404})
45
+ .then(function(response) {
46
+ log('ESConnector.prototype.automigrate', 'finished deleting all indices', response);
47
+ return Promise.map(
48
+ models,
49
+ function(modelName){
50
+ return self.setupMapping(modelName);
51
+ },
52
+ {concurrency: 1}
53
+ )
54
+ .then(function(){
55
+ log('ESConnector.prototype.automigrate', 'finished all mappings');
56
+ cb();
57
+ });
58
+ })
59
+ .catch(function(err){
60
+ log('ESConnector.prototype.automigrate', 'failed', err);
61
+ cb(err);
62
+ });
63
+ }
64
+ else {
65
+ log('ESConnector.prototype.automigrate', 'ERROR', 'Elasticsearch connector has not been initialized');
66
+ cb('Elasticsearch connector has not been initialized');
67
+ }
68
+ };
69
+
70
+ module.exports = function(dependencies) {
71
+ log = (dependencies) ? (dependencies.log || console.log) : console.log; /*eslint no-console: ["error", { allow: ["log"] }] */
72
+ _ = (dependencies) ? (dependencies.lodash || require('lodash')) : require('lodash');
73
+ Promise = (dependencies) ? (dependencies.bluebird || require('bluebird')) : require('bluebird');
74
+ return automigrate;
75
+ };