hunk.code_window: 			transaction.Rollback()
   			// We don't consider duplicated save calls as an error
   			if !IsUniqueConstraintError(err.Error(), []string{"reactions_pkey", "PRIMARY"}) {
   				result.Err = model.NewLocAppError("SqlPreferenceStore.Save", "store.sql_reaction.save.save.app_error", nil, err.Error())
   			}
   		} else {
   			if err := transaction.Commit(); err != nil {
  
hunk.labels: keep keep keep replace keep keep keep keep
hunk.after_edit: 			if !IsUniqueConstraintError(err, []string{"reactions_pkey", "PRIMARY"}) {
  
hunk.file_path: store/sql_supplier_reactions.go
hunk.type: replace
file: // Copyright (c) 2017 Mattermost, Inc. All Rights Reserved.
  // See License.txt for license information.
  
  import {connect} from 'react-redux';
  import {getCurrentUser} from 'mattermost-redux/selectors/entities/users';
  import {bindActionCreators} from 'redux';
  import {getOpenGraphMetadata} from 'mattermost-redux/actions/posts';
  import {getOpenGraphMetadataForUrl} from 'mattermost-redux/selectors/entities/posts';
  
  import PostAttachmentOpenGraph from './post_attachment_opengraph.jsx';
  
  function mapStateToProps(state, ownProps) {
      return {
          ...ownProps,
          openGraphData: getOpenGraphMetadataForUrl(state, ownProps.link),
          currentUser: getCurrentUser(state),
      };
  }
  
  function mapDispatchToProps(dispatch) {
      return {
          actions: bindActionCreators({
              getOpenGraphMetadata
          }, dispatch)
      };
  }
  
  export default connect(mapStateToProps, mapDispatchToProps)(PostAttachmentOpenGraph);
  