add additional wrappers support #66
							
								
								
									
										25
									
								
								http.go
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								http.go
									
									
									
									
									
								
							@@ -604,6 +604,8 @@ func (h *httpClient) Publish(ctx context.Context, p client.Message, opts ...clie
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (h *httpClient) publish(ctx context.Context, ps []client.Message, opts ...client.PublishOption) error {
 | 
					func (h *httpClient) publish(ctx context.Context, ps []client.Message, opts ...client.PublishOption) error {
 | 
				
			||||||
 | 
						var body []byte
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	options := client.NewPublishOptions(opts...)
 | 
						options := client.NewPublishOptions(opts...)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// get proxy
 | 
						// get proxy
 | 
				
			||||||
@@ -622,24 +624,22 @@ func (h *httpClient) publish(ctx context.Context, ps []client.Message, opts ...c
 | 
				
			|||||||
	for _, p := range ps {
 | 
						for _, p := range ps {
 | 
				
			||||||
		md := metadata.Copy(omd)
 | 
							md := metadata.Copy(omd)
 | 
				
			||||||
		md[metadata.HeaderContentType] = p.ContentType()
 | 
							md[metadata.HeaderContentType] = p.ContentType()
 | 
				
			||||||
		md[metadata.HeaderTopic] = p.Topic()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		cf, err := h.newCodec(p.ContentType())
 | 
					 | 
				
			||||||
		if err != nil {
 | 
					 | 
				
			||||||
			return errors.InternalServerError("go.micro.client", err.Error())
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		var body []byte
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// passed in raw data
 | 
							// passed in raw data
 | 
				
			||||||
		if d, ok := p.Payload().(*codec.Frame); ok {
 | 
							if d, ok := p.Payload().(*codec.Frame); ok {
 | 
				
			||||||
			body = d.Data
 | 
								body = d.Data
 | 
				
			||||||
		} else {
 | 
							} else {
 | 
				
			||||||
			b := bytes.NewBuffer(nil)
 | 
								// use codec for payload
 | 
				
			||||||
			if err := cf.Write(b, &codec.Message{Type: codec.Event}, p.Payload()); err != nil {
 | 
								cf, err := h.newCodec(p.ContentType())
 | 
				
			||||||
 | 
								if err != nil {
 | 
				
			||||||
				return errors.InternalServerError("go.micro.client", err.Error())
 | 
									return errors.InternalServerError("go.micro.client", err.Error())
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			body = b.Bytes()
 | 
								// set the body
 | 
				
			||||||
 | 
								b, err := cf.Marshal(p.Payload())
 | 
				
			||||||
 | 
								if err != nil {
 | 
				
			||||||
 | 
									return errors.InternalServerError("go.micro.client", err.Error())
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								body = b
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		topic := p.Topic()
 | 
							topic := p.Topic()
 | 
				
			||||||
@@ -647,6 +647,9 @@ func (h *httpClient) publish(ctx context.Context, ps []client.Message, opts ...c
 | 
				
			|||||||
			topic = exchange
 | 
								topic = exchange
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							for k, v := range p.Metadata() {
 | 
				
			||||||
 | 
								md.Set(k, v)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
		md.Set(metadata.HeaderTopic, topic)
 | 
							md.Set(metadata.HeaderTopic, topic)
 | 
				
			||||||
		msgs = append(msgs, &broker.Message{Header: md, Body: body})
 | 
							msgs = append(msgs, &broker.Message{Header: md, Body: body})
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user