returnStatusError(codes.InvalidArgument,"Storage write rejected.",errors.New("Storage write rejected - not found, version check failed, or permission denied."))
err:=tx.QueryRowContext(ctx,"SELECT version, read, write FROM storage WHERE collection = $1 AND key = $2 AND user_id = $3",object.Collection,object.Key,ownerID).Scan(&dbVersion,&dbPermissionRead,&dbPermissionWrite)
iferr!=nil{
iferr==sql.ErrNoRows{
ifobject.Version!=""&&object.Version!="*"{
// Conditional write with a specific version but the object did not exist at all.
returnnil,ErrStorageRejectedVersion
}
}else{
logger.Debug("Error in write storage object pre-flight.",zap.Any("object",object),zap.Error(err))
logger.Debug("Could not write storage object.",zap.Error(err),zap.String("query",query),zap.Any("object",object))
varquerystring
ifdbVersion.Valid{
// Updating an existing storage object.
query="UPDATE storage SET value = $4, version = $5, read = $6, write = $7, update_time = now() WHERE collection = $1 AND key = $2 AND user_id = $3::UUID"