fix nil pointer error with `GetPartitionedTopicMetadata`  (#536)

* fix nil pointer error

* update

* fix lint

* add more context in error msg
diff --git a/pulsar/internal/lookup_service.go b/pulsar/internal/lookup_service.go
index eb63077..0602080 100644
--- a/pulsar/internal/lookup_service.go
+++ b/pulsar/internal/lookup_service.go
@@ -190,11 +190,23 @@
 	}
 	ls.log.Debugf("Got topic{%s} partitioned metadata response: %+v", topic, res)
 
-	if res.Response.PartitionMetadataResponse.Error != nil {
-		return nil, errors.New(res.Response.PartitionMetadataResponse.GetError().String())
+	var partitionedTopicMetadata PartitionedTopicMetadata
+
+	if res.Response.Error != nil {
+		return nil, errors.New(res.Response.GetError().String())
 	}
 
-	return &PartitionedTopicMetadata{Partitions: int(res.Response.PartitionMetadataResponse.GetPartitions())}, nil
+	if res.Response.PartitionMetadataResponse != nil {
+		if res.Response.PartitionMetadataResponse.Error != nil {
+			return nil, errors.New(res.Response.PartitionMetadataResponse.GetError().String())
+		}
+
+		partitionedTopicMetadata.Partitions = int(res.Response.PartitionMetadataResponse.GetPartitions())
+	} else {
+		return nil, fmt.Errorf("no partitioned metadata for topic{%s} in lookup response", topic)
+	}
+
+	return &partitionedTopicMetadata, nil
 }
 
 func (ls *lookupService) Close() {}