github.com/Foodji/aws-lambda-go@v1.20.2/events/code_commit.go (about)

     1  package events
     2  
     3  import (
     4  	"errors"
     5  	"fmt"
     6  	"time"
     7  )
     8  
     9  // CodeCommitEvent represents a CodeCommit event
    10  type CodeCommitEvent struct {
    11  	Records []CodeCommitRecord `json:"Records"`
    12  }
    13  
    14  // String returns a string representation of this object.
    15  // Useful for testing and debugging.
    16  func (e CodeCommitEvent) String() string {
    17  	return fmt.Sprintf("{Records: %v}", e.Records)
    18  }
    19  
    20  type CodeCommitEventTime time.Time
    21  
    22  // https://golang.org/pkg/time/#Parse
    23  const codeCommitEventTimeReference = "\"2006-01-2T15:04:05.000-0700\""
    24  
    25  func (t *CodeCommitEventTime) MarshalJSON() ([]byte, error) {
    26  	if t == nil {
    27  		return nil, errors.New("CodeCommitEventTime cannot be nil")
    28  	}
    29  
    30  	gt := time.Time(*t)
    31  	return []byte(gt.Format(codeCommitEventTimeReference)), nil
    32  }
    33  
    34  func (t *CodeCommitEventTime) UnmarshalJSON(data []byte) error {
    35  	if t == nil {
    36  		return errors.New("CodeCommitEventTime cannot be nil")
    37  	}
    38  
    39  	pt, err := time.Parse(codeCommitEventTimeReference, string(data))
    40  	if err == nil {
    41  		*t = CodeCommitEventTime(pt)
    42  	}
    43  	return err
    44  }
    45  
    46  // CodeCommitRecord represents a CodeCommit record
    47  type CodeCommitRecord struct {
    48  	EventID              string               `json:"eventId"`
    49  	EventVersion         string               `json:"eventVersion"`
    50  	EventTime            CodeCommitEventTime  `json:"eventTime"`
    51  	EventTriggerName     string               `json:"eventTriggerName"`
    52  	EventPartNumber      uint64               `json:"eventPartNumber"`
    53  	CodeCommit           CodeCommitCodeCommit `json:"codecommit"`
    54  	EventName            string               `json:"eventName"`
    55  	EventTriggerConfigId string               `json:"eventTriggerConfigId"`
    56  	EventSourceARN       string               `json:"eventSourceARN"`
    57  	UserIdentityARN      string               `json:"userIdentityARN"`
    58  	EventSource          string               `json:"eventSource"`
    59  	AWSRegion            string               `json:"awsRegion"`
    60  	EventTotalParts      uint64               `json:"eventTotalParts"`
    61  	CustomData           string               `json:"customData,omitempty"`
    62  }
    63  
    64  // String returns a string representation of this object.
    65  // Useful for testing and debugging.
    66  func (r CodeCommitRecord) String() string {
    67  	return fmt.Sprintf(
    68  		"{eventId: %v, eventVersion: %v, eventTime: %v, eventTriggerName: %v, "+
    69  			"eventPartNumber: %v, codeCommit: %v, eventName: %v, "+
    70  			"eventTriggerConfigId: %v, eventSourceARN: %v, userIdentityARN: %v, "+
    71  			"eventSource: %v, awsRegion: %v, eventTotalParts: %v, customData: %v}",
    72  		r.EventID, r.EventVersion, r.EventTime, r.EventTriggerName,
    73  		r.EventPartNumber, r.CodeCommit, r.EventName,
    74  		r.EventTriggerConfigId, r.EventSourceARN, r.UserIdentityARN,
    75  		r.EventSource, r.AWSRegion, r.EventTotalParts, r.CustomData)
    76  }
    77  
    78  // CodeCommitCodeCommit represents a CodeCommit object in a record
    79  type CodeCommitCodeCommit struct {
    80  	References []CodeCommitReference `json:"references"`
    81  }
    82  
    83  // String returns a string representation of this object.
    84  // Useful for testing and debugging.
    85  func (c CodeCommitCodeCommit) String() string {
    86  	return fmt.Sprintf("{references: %v}", c.References)
    87  }
    88  
    89  // CodeCommitReference represents a Reference object in a CodeCommit object
    90  type CodeCommitReference struct {
    91  	Commit  string `json:"commit"`
    92  	Ref     string `json:"ref"`
    93  	Created bool   `json:"created,omitempty"`
    94  }
    95  
    96  // String returns a string representation of this object.
    97  // Useful for testing and debugging.
    98  func (r CodeCommitReference) String() string {
    99  	return fmt.Sprintf(
   100  		"{commit: %v, ref: %v, created: %v}", r.Commit, r.Ref, r.Created)
   101  }