5
5
"os"
6
6
"time"
7
7
8
+ "github.com/go-viper/mapstructure/v2"
8
9
"github.com/tidwall/gjson"
9
10
10
11
"github.com/rudderlabs/rudder-go-kit/logger"
@@ -58,7 +59,7 @@ func (d *defaultManager) Upload(asyncDestStruct *common.AsyncDestinationStruct)
58
59
fileFormat := result .Get ("fileFormat" ).String ()
59
60
60
61
// Generate temporary file based on the destination's file format
61
- jsonOrCSVFilePath , err := generateFile (textFilePath , fileFormat )
62
+ jsonOrCSVFilePath , err := generateFile (textFilePath , fileFormat , d . config . SortColumnNames )
62
63
if err != nil {
63
64
return generateErrorOutput (fmt .Sprintf ("error generating temporary file: %v" , err .Error ()), asyncDestStruct .ImportingJobIDs , destinationID )
64
65
}
@@ -98,16 +99,21 @@ func (d *defaultManager) Upload(asyncDestStruct *common.AsyncDestinationStruct)
98
99
}
99
100
}
100
101
101
- func newDefaultManager (logger logger.Logger , statsFactory stats.Stats , fileManager sftp.FileManager ) * defaultManager {
102
+ func newDefaultManager (logger logger.Logger , statsFactory stats.Stats , fileManager sftp.FileManager , config destConfig ) * defaultManager {
102
103
return & defaultManager {
103
104
FileManager : fileManager ,
104
105
logger : logger .Child ("SFTP" ).Child ("Manager" ),
105
106
statsFactory : statsFactory ,
107
+ config : config ,
106
108
}
107
109
}
108
110
109
111
func newInternalManager (logger logger.Logger , statsFactory stats.Stats , destination * backendconfig.DestinationT ) (common.AsyncUploadAndTransformManager , error ) {
110
- sshConfig , err := createSSHConfig (destination )
112
+ var config destConfig
113
+ if err := mapstructure .Decode (destination .Config , & config ); err != nil {
114
+ return nil , fmt .Errorf ("unmarshalling destination config: %w" , err )
115
+ }
116
+ sshConfig , err := createSSHConfig (config )
111
117
if err != nil {
112
118
return nil , fmt .Errorf ("creating SSH config: %w" , err )
113
119
}
@@ -117,7 +123,8 @@ func newInternalManager(logger logger.Logger, statsFactory stats.Stats, destinat
117
123
return nil , fmt .Errorf ("creating file manager: %w" , err )
118
124
}
119
125
120
- return newDefaultManager (logger , statsFactory , fileManager ), nil
126
+ manager := newDefaultManager (logger , statsFactory , fileManager , config )
127
+ return manager , nil
121
128
}
122
129
123
130
func NewManager (logger logger.Logger , statsFactory stats.Stats , destination * backendconfig.DestinationT ) (common.AsyncDestinationManager , error ) {
0 commit comments