evt-event_store-http 0.0.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. checksums.yaml +7 -0
  2. data/lib/event_store/http/cluster/member_state.rb +28 -0
  3. data/lib/event_store/http/connect/defaults.rb +11 -0
  4. data/lib/event_store/http/connect/leader.rb +37 -0
  5. data/lib/event_store/http/connect.rb +69 -0
  6. data/lib/event_store/http/controls/cluster/current_members.rb +52 -0
  7. data/lib/event_store/http/controls/cluster/size.rb +13 -0
  8. data/lib/event_store/http/controls/event.rb +43 -0
  9. data/lib/event_store/http/controls/gossip/response/json.rb +91 -0
  10. data/lib/event_store/http/controls/gossip/response/member.rb +114 -0
  11. data/lib/event_store/http/controls/gossip/response.rb +17 -0
  12. data/lib/event_store/http/controls/hostname/cluster.rb +67 -0
  13. data/lib/event_store/http/controls/hostname/resolution.rb +61 -0
  14. data/lib/event_store/http/controls/hostname.rb +35 -0
  15. data/lib/event_store/http/controls/info/response/json.rb +25 -0
  16. data/lib/event_store/http/controls/info/response.rb +21 -0
  17. data/lib/event_store/http/controls/ip_address/cluster.rb +77 -0
  18. data/lib/event_store/http/controls/ip_address.rb +23 -0
  19. data/lib/event_store/http/controls/json.rb +27 -0
  20. data/lib/event_store/http/controls/media_types/atom/event/content.rb +47 -0
  21. data/lib/event_store/http/controls/media_types/atom/event/json.rb +52 -0
  22. data/lib/event_store/http/controls/media_types/atom/event/links.rb +28 -0
  23. data/lib/event_store/http/controls/media_types/atom/event.rb +46 -0
  24. data/lib/event_store/http/controls/media_types/atom/page/entries.rb +131 -0
  25. data/lib/event_store/http/controls/media_types/atom/page/json/backward.rb +115 -0
  26. data/lib/event_store/http/controls/media_types/atom/page/json/embed/body.rb +150 -0
  27. data/lib/event_store/http/controls/media_types/atom/page/json/embed/rich.rb +144 -0
  28. data/lib/event_store/http/controls/media_types/atom/page/json.rb +113 -0
  29. data/lib/event_store/http/controls/media_types/atom/page/links.rb +70 -0
  30. data/lib/event_store/http/controls/media_types/atom/page.rb +43 -0
  31. data/lib/event_store/http/controls/media_types/events/json.rb +25 -0
  32. data/lib/event_store/http/controls/media_types/events.rb +39 -0
  33. data/lib/event_store/http/controls/net_http/host_header.rb +41 -0
  34. data/lib/event_store/http/controls/net_http/request/post.rb +36 -0
  35. data/lib/event_store/http/controls/net_http/request.rb +13 -0
  36. data/lib/event_store/http/controls/net_http.rb +14 -0
  37. data/lib/event_store/http/controls/port.rb +29 -0
  38. data/lib/event_store/http/controls/read_event/output_schema.rb +43 -0
  39. data/lib/event_store/http/controls/read_stream/output_schema/optimized.rb +66 -0
  40. data/lib/event_store/http/controls/read_stream/output_schema.rb +50 -0
  41. data/lib/event_store/http/controls/session_type.rb +15 -0
  42. data/lib/event_store/http/controls/stream.rb +17 -0
  43. data/lib/event_store/http/controls/time.rb +7 -0
  44. data/lib/event_store/http/controls/uri/event.rb +24 -0
  45. data/lib/event_store/http/controls/uuid.rb +7 -0
  46. data/lib/event_store/http/controls/write.rb +22 -0
  47. data/lib/event_store/http/controls.rb +59 -0
  48. data/lib/event_store/http/gossip/response/member.rb +40 -0
  49. data/lib/event_store/http/gossip/response/transformer.rb +49 -0
  50. data/lib/event_store/http/gossip/response.rb +25 -0
  51. data/lib/event_store/http/gossip.rb +28 -0
  52. data/lib/event_store/http/info/response/transformer.rb +28 -0
  53. data/lib/event_store/http/info/response.rb +25 -0
  54. data/lib/event_store/http/info.rb +28 -0
  55. data/lib/event_store/http/json/deserialize.rb +25 -0
  56. data/lib/event_store/http/json/serialize.rb +20 -0
  57. data/lib/event_store/http/log.rb +20 -0
  58. data/lib/event_store/http/media_types/atom/event/transformer.rb +44 -0
  59. data/lib/event_store/http/media_types/atom/event.rb +28 -0
  60. data/lib/event_store/http/media_types/atom/links.rb +18 -0
  61. data/lib/event_store/http/media_types/atom/page/embed/body/transformer.rb +43 -0
  62. data/lib/event_store/http/media_types/atom/page/embed/none/transformer.rb +45 -0
  63. data/lib/event_store/http/media_types/atom/page/embed/rich/event.rb +33 -0
  64. data/lib/event_store/http/media_types/atom/page/embed/rich/transformer.rb +63 -0
  65. data/lib/event_store/http/media_types/atom/page/transformer.rb +11 -0
  66. data/lib/event_store/http/media_types/atom/page.rb +17 -0
  67. data/lib/event_store/http/media_types/atom.rb +11 -0
  68. data/lib/event_store/http/media_types/events/data.rb +46 -0
  69. data/lib/event_store/http/media_types/events.rb +11 -0
  70. data/lib/event_store/http/net_http/extensions.rb +34 -0
  71. data/lib/event_store/http/net_http/substitute/telemetry.rb +19 -0
  72. data/lib/event_store/http/net_http/substitute.rb +112 -0
  73. data/lib/event_store/http/net_http.rb +11 -0
  74. data/lib/event_store/http/read_event/log_text.rb +17 -0
  75. data/lib/event_store/http/read_event/substitute.rb +35 -0
  76. data/lib/event_store/http/read_event.rb +72 -0
  77. data/lib/event_store/http/read_stream/defaults.rb +31 -0
  78. data/lib/event_store/http/read_stream/log_text.rb +17 -0
  79. data/lib/event_store/http/read_stream/substitute.rb +90 -0
  80. data/lib/event_store/http/read_stream.rb +100 -0
  81. data/lib/event_store/http/request.rb +48 -0
  82. data/lib/event_store/http/retry/substitute.rb +44 -0
  83. data/lib/event_store/http/retry/telemetry.rb +15 -0
  84. data/lib/event_store/http/retry.rb +98 -0
  85. data/lib/event_store/http/session/any_member.rb +9 -0
  86. data/lib/event_store/http/session/defaults.rb +11 -0
  87. data/lib/event_store/http/session/factory.rb +74 -0
  88. data/lib/event_store/http/session/leader.rb +33 -0
  89. data/lib/event_store/http/session/log_text.rb +41 -0
  90. data/lib/event_store/http/session/read.rb +22 -0
  91. data/lib/event_store/http/session.rb +100 -0
  92. data/lib/event_store/http/settings/read.rb +29 -0
  93. data/lib/event_store/http/settings.rb +27 -0
  94. data/lib/event_store/http/write/log_text.rb +17 -0
  95. data/lib/event_store/http/write/substitute.rb +52 -0
  96. data/lib/event_store/http/write.rb +82 -0
  97. data/lib/event_store/http.rb +77 -0
  98. metadata +237 -0
@@ -0,0 +1,150 @@
1
+ module EventStore
2
+ module HTTP
3
+ module Controls
4
+ module MediaTypes
5
+ module Atom
6
+ module Page
7
+ module JSON
8
+ module Embed
9
+ module Body
10
+ def self.example
11
+ <<~JSON
12
+ {
13
+ "title": "Event stream 'testStream'",
14
+ "id": "http://127.0.0.1:2113/streams/testStream",
15
+ "updated": "2000-01-01T00:00:00.000000Z",
16
+ "streamId": "testStream",
17
+ "author": {
18
+ "name": "EventStore"
19
+ },
20
+ "headOfStream": true,
21
+ "links": [
22
+ {
23
+ "uri": "http://127.0.0.1:2113/streams/testStream",
24
+ "relation": "self"
25
+ },
26
+ {
27
+ "uri": "http://127.0.0.1:2113/streams/testStream/head/backward/20",
28
+ "relation": "first"
29
+ },
30
+ {
31
+ "uri": "http://127.0.0.1:2113/streams/testStream/0/forward/20",
32
+ "relation": "last"
33
+ },
34
+ {
35
+ "uri": "http://127.0.0.1:2113/streams/testStream/49/backward/20",
36
+ "relation": "next"
37
+ },
38
+ {
39
+ "uri": "http://127.0.0.1:2113/streams/testStream/70/forward/20",
40
+ "relation": "previous"
41
+ },
42
+ {
43
+ "uri": "http://127.0.0.1:2113/streams/testStream/metadata",
44
+ "relation": "metadata"
45
+ }
46
+ ],
47
+ "entries": [
48
+ {
49
+ "eventId": "00000002-0000-4000-8000-000000000000",
50
+ "eventType": "SomeType",
51
+ "eventNumber": 2,
52
+ "data": "{\\n \\"someAttribute\\": \\"some-value-2\\"\\n}",
53
+ "metaData": "{\\n \\"someMetaAttribute\\": \\"some-meta-value-2\\"\\n}",
54
+ "streamId": "testStream",
55
+ "isJson": true,
56
+ "isMetaData": false,
57
+ "isLinkMetaData": false,
58
+ "positionEventNumber": 222,
59
+ "positionStreamId": "readStream",
60
+ "title": "2@testStream",
61
+ "id": "http://127.0.0.1:2113/streams/testStream/2",
62
+ "updated": "2000-01-01T00:00:00.000000Z",
63
+ "author": {
64
+ "name": "EventStore"
65
+ },
66
+ "summary": "SomeType",
67
+ "links": [
68
+ {
69
+ "uri": "http://127.0.0.1:2113/streams/testStream/2",
70
+ "relation": "edit"
71
+ },
72
+ {
73
+ "uri": "http://127.0.0.1:2113/streams/testStream/2",
74
+ "relation": "alternate"
75
+ }
76
+ ]
77
+ },
78
+ {
79
+ "eventId": "00000001-0000-4000-8000-000000000000",
80
+ "eventType": "SomeType",
81
+ "eventNumber": 1,
82
+ "data": "{\\n \\"someAttribute\\": \\"some-value-1\\"\\n}",
83
+ "metaData": "{\\n \\"someMetaAttribute\\": \\"some-meta-value-1\\"\\n}",
84
+ "streamId": "testStream",
85
+ "isJson": true,
86
+ "isMetaData": false,
87
+ "isLinkMetaData": false,
88
+ "positionEventNumber": 111,
89
+ "positionStreamId": "readStream",
90
+ "title": "1@testStream",
91
+ "id": "http://127.0.0.1:2113/streams/testStream/1",
92
+ "updated": "2000-01-01T00:00:00.000000Z",
93
+ "author": {
94
+ "name": "EventStore"
95
+ },
96
+ "summary": "SomeType",
97
+ "links": [
98
+ {
99
+ "uri": "http://127.0.0.1:2113/streams/testStream/1",
100
+ "relation": "edit"
101
+ },
102
+ {
103
+ "uri": "http://127.0.0.1:2113/streams/testStream/1",
104
+ "relation": "alternate"
105
+ }
106
+ ]
107
+ },
108
+ {
109
+ "eventId": "00000000-0000-4000-8000-000000000000",
110
+ "eventType": "SomeType",
111
+ "eventNumber": 0,
112
+ "data": "{\\n \\"someAttribute\\": \\"some-value-0\\"\\n}",
113
+ "metaData": "{\\n \\"someMetaAttribute\\": \\"some-meta-value-0\\"\\n}",
114
+ "streamId": "testStream",
115
+ "isJson": true,
116
+ "isMetaData": false,
117
+ "isLinkMetaData": false,
118
+ "positionEventNumber": 0,
119
+ "positionStreamId": "readStream",
120
+ "title": "0@testStream",
121
+ "id": "http://127.0.0.1:2113/streams/testStream/0",
122
+ "updated": "2000-01-01T00:00:00.000000Z",
123
+ "author": {
124
+ "name": "EventStore"
125
+ },
126
+ "summary": "SomeType",
127
+ "links": [
128
+ {
129
+ "uri": "http://127.0.0.1:2113/streams/testStream/0",
130
+ "relation": "edit"
131
+ },
132
+ {
133
+ "uri": "http://127.0.0.1:2113/streams/testStream/0",
134
+ "relation": "alternate"
135
+ }
136
+ ]
137
+ }
138
+ ]
139
+ }
140
+ JSON
141
+ end
142
+ end
143
+ end
144
+ end
145
+ end
146
+ end
147
+ end
148
+ end
149
+ end
150
+ end
@@ -0,0 +1,144 @@
1
+ module EventStore
2
+ module HTTP
3
+ module Controls
4
+ module MediaTypes
5
+ module Atom
6
+ module Page
7
+ module JSON
8
+ module Embed
9
+ module Rich
10
+ def self.example
11
+ <<~JSON
12
+ {
13
+ "title": "Event stream 'testStream'",
14
+ "id": "http://127.0.0.1:2113/streams/testStream",
15
+ "updated": "2000-01-01T00:00:00.000000Z",
16
+ "streamId": "testStream",
17
+ "author": {
18
+ "name": "EventStore"
19
+ },
20
+ "headOfStream": true,
21
+ "links": [
22
+ {
23
+ "uri": "http://127.0.0.1:2113/streams/testStream",
24
+ "relation": "self"
25
+ },
26
+ {
27
+ "uri": "http://127.0.0.1:2113/streams/testStream/head/backward/20",
28
+ "relation": "first"
29
+ },
30
+ {
31
+ "uri": "http://127.0.0.1:2113/streams/testStream/0/forward/20",
32
+ "relation": "last"
33
+ },
34
+ {
35
+ "uri": "http://127.0.0.1:2113/streams/testStream/49/backward/20",
36
+ "relation": "next"
37
+ },
38
+ {
39
+ "uri": "http://127.0.0.1:2113/streams/testStream/70/forward/20",
40
+ "relation": "previous"
41
+ },
42
+ {
43
+ "uri": "http://127.0.0.1:2113/streams/testStream/metadata",
44
+ "relation": "metadata"
45
+ }
46
+ ],
47
+ "entries": [
48
+ {
49
+ "eventId": "00000002-0000-4000-8000-000000000000",
50
+ "eventType": "SomeType",
51
+ "eventNumber": 2,
52
+ "streamId": "testStream",
53
+ "isJson": true,
54
+ "isMetaData": false,
55
+ "isLinkMetaData": false,
56
+ "positionEventNumber": 222,
57
+ "positionStreamId": "readStream",
58
+ "title": "2@testStream",
59
+ "id": "http://127.0.0.1:2113/streams/testStream/2",
60
+ "updated": "2000-01-01T00:00:00.000000Z",
61
+ "author": {
62
+ "name": "EventStore"
63
+ },
64
+ "summary": "SomeType",
65
+ "links": [
66
+ {
67
+ "uri": "http://127.0.0.1:2113/streams/testStream/2",
68
+ "relation": "edit"
69
+ },
70
+ {
71
+ "uri": "http://127.0.0.1:2113/streams/testStream/2",
72
+ "relation": "alternate"
73
+ }
74
+ ]
75
+ },
76
+ {
77
+ "eventId": "00000001-0000-4000-8000-000000000000",
78
+ "eventType": "SomeType",
79
+ "eventNumber": 1,
80
+ "streamId": "testStream",
81
+ "isJson": true,
82
+ "isMetaData": false,
83
+ "isLinkMetaData": false,
84
+ "positionEventNumber": 111,
85
+ "positionStreamId": "readStream",
86
+ "title": "1@testStream",
87
+ "id": "http://127.0.0.1:2113/streams/testStream/1",
88
+ "updated": "2000-01-01T00:00:00.000000Z",
89
+ "author": {
90
+ "name": "EventStore"
91
+ },
92
+ "summary": "SomeType",
93
+ "links": [
94
+ {
95
+ "uri": "http://127.0.0.1:2113/streams/testStream/1",
96
+ "relation": "edit"
97
+ },
98
+ {
99
+ "uri": "http://127.0.0.1:2113/streams/testStream/1",
100
+ "relation": "alternate"
101
+ }
102
+ ]
103
+ },
104
+ {
105
+ "eventId": "00000000-0000-4000-8000-000000000000",
106
+ "eventType": "SomeType",
107
+ "eventNumber": 0,
108
+ "streamId": "testStream",
109
+ "isJson": true,
110
+ "isMetaData": false,
111
+ "isLinkMetaData": false,
112
+ "positionEventNumber": 0,
113
+ "positionStreamId": "readStream",
114
+ "title": "0@testStream",
115
+ "id": "http://127.0.0.1:2113/streams/testStream/0",
116
+ "updated": "2000-01-01T00:00:00.000000Z",
117
+ "author": {
118
+ "name": "EventStore"
119
+ },
120
+ "summary": "SomeType",
121
+ "links": [
122
+ {
123
+ "uri": "http://127.0.0.1:2113/streams/testStream/0",
124
+ "relation": "edit"
125
+ },
126
+ {
127
+ "uri": "http://127.0.0.1:2113/streams/testStream/0",
128
+ "relation": "alternate"
129
+ }
130
+ ]
131
+ }
132
+ ]
133
+ }
134
+ JSON
135
+ end
136
+ end
137
+ end
138
+ end
139
+ end
140
+ end
141
+ end
142
+ end
143
+ end
144
+ end
@@ -0,0 +1,113 @@
1
+ module EventStore
2
+ module HTTP
3
+ module Controls
4
+ module MediaTypes
5
+ module Atom
6
+ module Page
7
+ module JSON
8
+ def self.text
9
+ <<~JSON
10
+ {
11
+ "title": "Event stream 'testStream'",
12
+ "id": "http://127.0.0.1:2113/streams/testStream",
13
+ "updated": "2000-01-01T00:00:00.000000Z",
14
+ "streamId": "testStream",
15
+ "author": {
16
+ "name": "EventStore"
17
+ },
18
+ "headOfStream": true,
19
+ "links": [
20
+ {
21
+ "uri": "http://127.0.0.1:2113/streams/testStream",
22
+ "relation": "self"
23
+ },
24
+ {
25
+ "uri": "http://127.0.0.1:2113/streams/testStream/head/backward/20",
26
+ "relation": "first"
27
+ },
28
+ {
29
+ "uri": "http://127.0.0.1:2113/streams/testStream/0/forward/20",
30
+ "relation": "last"
31
+ },
32
+ {
33
+ "uri": "http://127.0.0.1:2113/streams/testStream/49/backward/20",
34
+ "relation": "next"
35
+ },
36
+ {
37
+ "uri": "http://127.0.0.1:2113/streams/testStream/70/forward/20",
38
+ "relation": "previous"
39
+ },
40
+ {
41
+ "uri": "http://127.0.0.1:2113/streams/testStream/metadata",
42
+ "relation": "metadata"
43
+ }
44
+ ],
45
+ "entries": [
46
+ {
47
+ "title": "2@testStream",
48
+ "id": "http://127.0.0.1:2113/streams/testStream/2",
49
+ "updated": "2000-01-01T00:00:00.000000Z",
50
+ "author": {
51
+ "name": "EventStore"
52
+ },
53
+ "summary": "SomeType",
54
+ "links": [
55
+ {
56
+ "uri": "http://127.0.0.1:2113/streams/testStream/2",
57
+ "relation": "edit"
58
+ },
59
+ {
60
+ "uri": "http://127.0.0.1:2113/streams/testStream/2",
61
+ "relation": "alternate"
62
+ }
63
+ ]
64
+ },
65
+ {
66
+ "title": "1@testStream",
67
+ "id": "http://127.0.0.1:2113/streams/testStream/1",
68
+ "updated": "2000-01-01T00:00:00.000000Z",
69
+ "author": {
70
+ "name": "EventStore"
71
+ },
72
+ "summary": "SomeType",
73
+ "links": [
74
+ {
75
+ "uri": "http://127.0.0.1:2113/streams/testStream/1",
76
+ "relation": "edit"
77
+ },
78
+ {
79
+ "uri": "http://127.0.0.1:2113/streams/testStream/1",
80
+ "relation": "alternate"
81
+ }
82
+ ]
83
+ },
84
+ {
85
+ "title": "0@testStream",
86
+ "id": "http://127.0.0.1:2113/streams/testStream/0",
87
+ "updated": "2000-01-01T00:00:00.000000Z",
88
+ "author": {
89
+ "name": "EventStore"
90
+ },
91
+ "summary": "SomeType",
92
+ "links": [
93
+ {
94
+ "uri": "http://127.0.0.1:2113/streams/testStream/0",
95
+ "relation": "edit"
96
+ },
97
+ {
98
+ "uri": "http://127.0.0.1:2113/streams/testStream/0",
99
+ "relation": "alternate"
100
+ }
101
+ ]
102
+ }
103
+ ]
104
+ }
105
+ JSON
106
+ end
107
+ end
108
+ end
109
+ end
110
+ end
111
+ end
112
+ end
113
+ end
@@ -0,0 +1,70 @@
1
+ module EventStore
2
+ module HTTP
3
+ module Controls
4
+ module MediaTypes
5
+ module Atom
6
+ module Page
7
+ module Links
8
+ def self.example(backward: nil)
9
+ hash = {
10
+ :self => self.self,
11
+ :first => first,
12
+ :last => last,
13
+ :metadata => metadata
14
+ }
15
+
16
+ if backward
17
+ hash.merge!({
18
+ :previous => Backward.previous,
19
+ :next => Backward.next,
20
+ })
21
+ else
22
+ hash.merge!({
23
+ :previous => self.previous,
24
+ :next => self.next,
25
+ })
26
+ end
27
+
28
+ hash
29
+ end
30
+
31
+ def self.self
32
+ "http://127.0.0.1:2113/streams/testStream"
33
+ end
34
+
35
+ def self.first
36
+ "http://127.0.0.1:2113/streams/testStream/head/backward/20"
37
+ end
38
+
39
+ def self.last
40
+ "http://127.0.0.1:2113/streams/testStream/0/forward/20"
41
+ end
42
+
43
+ def self.next
44
+ "http://127.0.0.1:2113/streams/testStream/49/backward/20"
45
+ end
46
+
47
+ def self.previous
48
+ "http://127.0.0.1:2113/streams/testStream/70/forward/20"
49
+ end
50
+
51
+ def self.metadata
52
+ "http://127.0.0.1:2113/streams/testStream/metadata"
53
+ end
54
+
55
+ module Backward
56
+ def self.next
57
+ "http://127.0.0.1:2113/streams/testStream/30/backward/20"
58
+ end
59
+
60
+ def self.previous
61
+ "http://127.0.0.1:2113/streams/testStream/51/forward/20"
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,43 @@
1
+ module EventStore
2
+ module HTTP
3
+ module Controls
4
+ module MediaTypes
5
+ module Atom
6
+ module Page
7
+ def self.example(embed: nil, backward: nil)
8
+ page = EventStore::HTTP::MediaTypes::Atom::Page.new
9
+ page.id = id
10
+ page.updated = updated
11
+ page.stream_id = stream_id
12
+ page.links = Links.example backward: backward
13
+
14
+ Entries.count.times do |index|
15
+ entry = Entries.example index, embed: embed
16
+
17
+ page.entries << entry
18
+ end
19
+
20
+ page
21
+ end
22
+
23
+ def self.stream
24
+ Stream.example random: false
25
+ end
26
+
27
+ def self.id
28
+ "http://#{Controls::IPAddress.example}:#{Port.example}/streams/#{stream}"
29
+ end
30
+
31
+ def self.updated
32
+ Controls::Time::Raw.example.iso8601 6
33
+ end
34
+
35
+ def self.stream_id
36
+ stream
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,25 @@
1
+ module EventStore
2
+ module HTTP
3
+ module Controls
4
+ module MediaTypes
5
+ module Events
6
+ module JSON
7
+ def self.text
8
+ <<~JSON.chomp
9
+ [
10
+ {
11
+ "eventId": "#{UUID.example}",
12
+ "eventType": "#{Event::Type.example}",
13
+ "data": {
14
+ "someAttribute": "some-value-0"
15
+ }
16
+ }
17
+ ]
18
+ JSON
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,39 @@
1
+ module EventStore
2
+ module HTTP
3
+ module Controls
4
+ module MediaTypes
5
+ module Events
6
+ def self.example(batch_size: nil, metadata: nil, random: nil)
7
+ batch_size ||= 1
8
+ metadata = "some-metadata" if metadata == true
9
+
10
+ data = EventStore::HTTP::MediaTypes::Events::Data.new
11
+
12
+ (0...batch_size).each do |i|
13
+ if random
14
+ event_id = Identifier::UUID::Random.get
15
+ else
16
+ event_id = UUID.example i.next
17
+ end
18
+
19
+ type = Event::Type.example
20
+ event_data = Event::Data.example i
21
+
22
+ metadata = Event::Metadata.example i if metadata
23
+
24
+ event = EventStore::HTTP::MediaTypes::Events::Data::Event.new
25
+ event.id = event_id
26
+ event.type = type
27
+ event.data = event_data
28
+ event.metadata = metadata
29
+
30
+ data.events << event
31
+ end
32
+
33
+ data
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,41 @@
1
+ module EventStore
2
+ module HTTP
3
+ module Controls
4
+ module NetHTTP
5
+ module HostHeader
6
+ def self.example(address=nil)
7
+ return IPAddress.example if address.nil?
8
+
9
+ port = Port.example
10
+
11
+ "#{address}:#{port}"
12
+ end
13
+
14
+ module Other
15
+ def self.example
16
+ address = Controls::Hostname.example
17
+
18
+ HostHeader.example address
19
+ end
20
+ end
21
+
22
+ module Hostname
23
+ def self.example
24
+ address = Controls::Hostname.example
25
+
26
+ HostHeader.example address
27
+ end
28
+ end
29
+
30
+ module IPAddress
31
+ def self.example
32
+ address = Controls::IPAddress.example
33
+
34
+ HostHeader.example address
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,36 @@
1
+ module EventStore
2
+ module HTTP
3
+ module Controls
4
+ module NetHTTP
5
+ module Request
6
+ module Post
7
+ def self.example
8
+ stream_name = "testStream-#{SecureRandom.hex 7}"
9
+
10
+ request = Net::HTTP::Post.new "/streams/#{stream_name}"
11
+ request.body = text
12
+ request['es-eventid'] = Identifier::UUID::Random.get
13
+ request['es-eventtype'] = type
14
+ request['content-type'] = 'application/json'
15
+ request
16
+ end
17
+
18
+ def self.type
19
+ 'SomeEvent'
20
+ end
21
+
22
+ def self.data
23
+ {
24
+ :attribute => SecureRandom.hex(7)
25
+ }
26
+ end
27
+
28
+ def self.text
29
+ ::JSON.generate data
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,13 @@
1
+ module EventStore
2
+ module HTTP
3
+ module Controls
4
+ module NetHTTP
5
+ module Request
6
+ def self.example
7
+ Net::HTTP::Get.new '/info'
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end