main

mattermost/focalboard

Last updated at: 28/12/2023 01:34

transactional_store.go.tmpl

TLDR

This file is part of the Demo Projects project and is generated by the "make generate" command from the Store interface. It should not be edited directly. The file contains generated code for the SQLStore package. It defines several methods for the SQLStore struct.

Methods

{{InsertMethodNameHere}}

[Description of what the method does in the code]

{{InsertMethodNameHere}}

[Description of what the method does in the code]

{{InsertMethodNameHere}}

[Description of what the method does in the code]

...

Classes

N/A

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.

// Code generated by "make generate" from the Store interface
// DO NOT EDIT

// To add a public method, create an entry in the Store interface,
// prefix it with a @withTransaction comment if you need it to be
// transactional and then add a private method in the store itself
// with db sq.BaseRunner as the first parameter before running `make
// generate`

package sqlstore

import (
	"context"
	"time"

    "github.com/mattermost/focalboard/server/model"

    "github.com/mattermost/mattermost-server/v6/shared/mlog"
	mmModel "github.com/mattermost/mattermost-server/v6/model"
)

{{range $index, $element := .Methods}}
func (s *SQLStore) {{$index}}({{$element.Params | joinParamsWithType}}) {{$element.Results | joinResultsForSignature}} {
    {{- if $element.WithTransaction}}
    	if s.dbType == model.SqliteDBType {
    	    return s.{{$index | renameStoreMethod}}(s.db, {{$element.Params | joinParams}})
    	}
    	tx, txErr := s.db.BeginTx(context.Background(), nil)
        if txErr != nil {
            return {{ genErrorResultsVars $element.Results "txErr"}}
    	}

        {{- if $element.Results | len | eq 0}}
    	s.{{$index | renameStoreMethod}}(tx, {{$element.Params | joinParams}})

        if err := tx.Commit(); err != nil {
           return {{ genErrorResultsVars $element.Results "err"}}
        }
    	{{else}}
    		{{genResultsVars $element.Results false }} := s.{{$index | renameStoreMethod}}(tx, {{$element.Params | joinParams}})
    		{{- if $element.Results | errorPresent }}
    			if {{$element.Results | errorVar}} != nil {
                    if rollbackErr := tx.Rollback(); rollbackErr != nil {
                       s.logger.Error("transaction rollback error", mlog.Err(rollbackErr), mlog.String("methodName", "{{$index}}"))
                    }
                    return {{ genErrorResultsVars $element.Results "err"}}
    			}
    		{{end}}
            if err := tx.Commit(); err != nil {
               return {{ genErrorResultsVars $element.Results "err"}}
            }

	    	return {{ genResultsVars $element.Results true -}}
	    {{end}}
    {{else}}
    return s.{{$index | renameStoreMethod}}(s.db, {{$element.Params | joinParams}})
    {{end}}
}
{{end}}