code: func (b *Bot) ChatByID(id string) (*Chat, error) {
  	params := map[string]string{
  		"chat_id": id,
  	}
  
  	respJSON, err := b.Raw("getChat", params)
  	if err != nil {
  		return nil, err
  	}
  
  	var resp struct {
  		Ok          bool
  		Description string
  		Result      *Chat
  	}
  
  	err = json.Unmarshal(respJSON, &resp)
  	if err != nil {
  		return nil, errors.Wrap(err, "bad response json")
  	}
  
  	if !resp.Ok {
  		return nil, errors.Errorf("api error: %s", resp.Description)
  	}
  
  	if resp.Result.Type == ChatChannel && resp.Result.Username == "" {
  		//Channel is Private
  		resp.Result.Type = ChatChannelPrivate
  	}
  
  	return resp.Result, nil
  }
docs: // ChatByID fetches chat info of its ID.
  //
  // Including current name of the user for one-on-one conversations,
  // current username of a user, group or channel, etc.
  //
  // Returns a Chat object on success.