github.com/line/line-bot-sdk-go/v7@v7.21.0/linebot/get_content.go (about)

     1  // Copyright 2016 LINE Corporation
     2  //
     3  // LINE Corporation licenses this file to you under the Apache License,
     4  // version 2.0 (the "License"); you may not use this file except in compliance
     5  // with the License. You may obtain a copy of the License at:
     6  //
     7  //   http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
    11  // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
    12  // License for the specific language governing permissions and limitations
    13  // under the License.
    14  
    15  package linebot
    16  
    17  import (
    18  	"context"
    19  	"fmt"
    20  )
    21  
    22  // GetMessageContent method
    23  func (client *Client) GetMessageContent(messageID string) *GetMessageContentCall {
    24  	return &GetMessageContentCall{
    25  		c:         client,
    26  		messageID: messageID,
    27  	}
    28  }
    29  
    30  // GetMessageContentCall type
    31  type GetMessageContentCall struct {
    32  	c   *Client
    33  	ctx context.Context
    34  
    35  	messageID string
    36  }
    37  
    38  // WithContext method
    39  func (call *GetMessageContentCall) WithContext(ctx context.Context) *GetMessageContentCall {
    40  	call.ctx = ctx
    41  	return call
    42  }
    43  
    44  // Do method
    45  func (call *GetMessageContentCall) Do() (*MessageContentResponse, error) {
    46  	endpoint := fmt.Sprintf(APIEndpointGetMessageContent, call.messageID)
    47  	res, err := call.c.get(call.ctx, call.c.endpointBaseData, endpoint, nil)
    48  	if err != nil {
    49  		return nil, err
    50  	}
    51  	defer closeResponse(res)
    52  	return decodeToMessageContentResponse(res)
    53  }