2323
2424'use strict' ;
2525
26- const pubsubClient = require ( `@google-cloud/pubsub` ) ( ) ;
26+ const PubSub = require ( `@google-cloud/pubsub` ) ;
2727
2828// [START pubsub_list_subscriptions]
2929function listSubscriptions ( callback ) {
30+ // Instantiates the client library
31+ const pubsubClient = PubSub ( ) ;
32+
3033 // Lists all subscriptions in the current project
3134 pubsubClient . getSubscriptions ( ( err , subscriptions ) => {
3235 if ( err ) {
@@ -43,6 +46,9 @@ function listSubscriptions (callback) {
4346
4447// [START pubsub_list_topic_subscriptions]
4548function listTopicSubscriptions ( topicName , callback ) {
49+ // Instantiates the client library
50+ const pubsubClient = PubSub ( ) ;
51+
4652 // References an existing topic, e.g. "my-topic"
4753 const topic = pubsubClient . topic ( topicName ) ;
4854
@@ -62,6 +68,9 @@ function listTopicSubscriptions (topicName, callback) {
6268
6369// [START pubsub_create_subscription]
6470function createSubscription ( topicName , subscriptionName , callback ) {
71+ // Instantiates the client library
72+ const pubsubClient = PubSub ( ) ;
73+
6574 // References an existing topic, e.g. "my-topic"
6675 const topic = pubsubClient . topic ( topicName ) ;
6776
@@ -80,16 +89,18 @@ function createSubscription (topicName, subscriptionName, callback) {
8089
8190// [START pubsub_create_push_subscription]
8291function createPushSubscription ( topicName , subscriptionName , callback ) {
92+ // Instantiates the client library
93+ const pubsubClient = PubSub ( ) ;
94+
8395 // References an existing topic, e.g. "my-topic"
8496 const topic = pubsubClient . topic ( topicName ) ;
85- const projectId = process . env . GCLOUD_PROJECT || 'YOU_PROJECT_ID' ;
8697
8798 // Creates a new push subscription, e.g. "my-new-subscription"
8899 topic . subscribe ( subscriptionName , {
89100 pushConfig : {
90101 // Set to an HTTPS endpoint of your choice. If necessary, register
91102 // (authorize) the domain on which the server is hosted.
92- pushEndpoint : `https://${ projectId } .appspot.com/push`
103+ pushEndpoint : `https://${ pubsubClient . projectId } .appspot.com/push`
93104 }
94105 } , ( err , subscription ) => {
95106 if ( err ) {
@@ -105,6 +116,9 @@ function createPushSubscription (topicName, subscriptionName, callback) {
105116
106117// [START pubsub_delete_subscription]
107118function deleteSubscription ( subscriptionName , callback ) {
119+ // Instantiates the client library
120+ const pubsubClient = PubSub ( ) ;
121+
108122 // References an existing subscription, e.g. "my-subscription"
109123 const subscription = pubsubClient . subscription ( subscriptionName ) ;
110124
@@ -123,6 +137,9 @@ function deleteSubscription (subscriptionName, callback) {
123137
124138// [START pubsub_get_subscription_metadata]
125139function getSubscriptionMetadata ( subscriptionName , callback ) {
140+ // Instantiates the client library
141+ const pubsubClient = PubSub ( ) ;
142+
126143 // References an existing subscription, e.g. "my-subscription"
127144 const subscription = pubsubClient . subscription ( subscriptionName ) ;
128145
@@ -144,6 +161,9 @@ function getSubscriptionMetadata (subscriptionName, callback) {
144161
145162// [START pubsub_pull_messages]
146163function pullMessages ( subscriptionName , callback ) {
164+ // Instantiates the client library
165+ const pubsubClient = PubSub ( ) ;
166+
147167 // References an existing subscription, e.g. "my-subscription"
148168 const subscription = pubsubClient . subscription ( subscriptionName ) ;
149169
@@ -179,9 +199,12 @@ function setSubscribeCounterValue (value) {
179199}
180200
181201// [START pubsub_pull_ordered_messages]
182- var outstandingMessages = { } ;
202+ const outstandingMessages = { } ;
183203
184204function pullOrderedMessages ( subscriptionName , callback ) {
205+ // Instantiates the client library
206+ const pubsubClient = PubSub ( ) ;
207+
185208 // References an existing subscription, e.g. "my-subscription"
186209 const subscription = pubsubClient . subscription ( subscriptionName ) ;
187210
@@ -193,39 +216,43 @@ function pullOrderedMessages (subscriptionName, callback) {
193216 return ;
194217 }
195218
196- // Sort messages in order of increasing messageId
197- messages . sort ( ( a , b ) => b . messageId - a . messageId ) ;
198-
199- // Iterate over messages in order of increasing messageId
200- messages . forEach ( ( message ) => outstandingMessages [ message . messageId ] = message ) ;
219+ messages . forEach ( ( message ) => {
220+ outstandingMessages [ message . attributes . orderId ] = message ;
221+ } ) ;
201222
202- const outstandingMessageIds = Object . keys ( outstandingMessages ) ;
203- outstandingMessageIds . sort ( ) ;
223+ const outstandingIds = Object . keys ( outstandingMessages ) . map ( ( orderId ) => + orderId ) ;
224+ outstandingIds . sort ( ) ;
204225
205- outstandingMessageIds . forEach ( ( messageId ) => {
226+ outstandingIds . forEach ( ( orderId ) => {
206227 const counter = getSubscribeCounterValue ( ) ;
207- const message = outstandingMessages [ messageId ] ;
228+ const message = outstandingMessages [ orderId ] ;
208229
209- if ( messageId < counter ) {
230+ if ( orderId < counter ) {
210231 // The message has already been processed
211232 subscription . ack ( message . ackId ) ;
212- delete outstandingMessages [ messageId ] ;
213- } else if ( messageId === counter ) {
214- handleMessage ( message ) ;
215- setSubscribeCounterValue ( messageId + 1 ) ;
233+ delete outstandingMessages [ orderId ] ;
234+ } else if ( orderId === counter ) {
235+ // Process the message
236+ console . log ( `* %d %j %j` , message . id , message . data , message . attributes ) ;
237+
238+ setSubscribeCounterValue ( orderId + 1 ) ;
216239 subscription . ack ( message . ackId ) ;
217- delete outstandingMessages [ messageId ] ;
240+ delete outstandingMessages [ orderId ] ;
218241 } else {
219242 // Have not yet processed the message on which this message is dependent
220243 return false ;
221244 }
222245 } ) ;
246+ callback ( ) ;
223247 } ) ;
224248}
225249// [END pubsub_pull_ordered_messages]
226250
227251// [START pubsub_get_subscription_policy]
228252function getSubscriptionPolicy ( subscriptionName , callback ) {
253+ // Instantiates the client library
254+ const pubsubClient = PubSub ( ) ;
255+
229256 // References an existing subscription, e.g. "my-subscription"
230257 const subscription = pubsubClient . subscription ( subscriptionName ) ;
231258
@@ -244,6 +271,9 @@ function getSubscriptionPolicy (subscriptionName, callback) {
244271
245272// [START pubsub_set_subscription_policy]
246273function setSubscriptionPolicy ( subscriptionName , callback ) {
274+ // Instantiates the client library
275+ const pubsubClient = PubSub ( ) ;
276+
247277 // References an existing subscription, e.g. "my-subscription"
248278 const subscription = pubsubClient . subscription ( subscriptionName ) ;
249279
@@ -278,6 +308,9 @@ function setSubscriptionPolicy (subscriptionName, callback) {
278308
279309// [START pubsub_test_subscription_permissions]
280310function testSubscriptionPermissions ( subscriptionName , callback ) {
311+ // Instantiates the client library
312+ const pubsubClient = PubSub ( ) ;
313+
281314 // References an existing subscription, e.g. "my-subscription"
282315 const subscription = pubsubClient . subscription ( subscriptionName ) ;
283316
0 commit comments