@@ -865,24 +865,118 @@ func getJmTransformerByPostgresDataType(
865865 },
866866 }, nil
867867 // case "bytea": // todo https://www.postgresql.org/docs/current/datatype-binary.html
868- // case "date":
869- // return &mgmtv1alpha1.JobMappingTransformer{}
870-
871- // case "time without time zone":
872- // return &mgmtv1alpha1.JobMappingTransformer{}
873-
874- // case "time with time zone":
875- // return &mgmtv1alpha1.JobMappingTransformer{}
876-
877- // case "interval":
878- // return &mgmtv1alpha1.JobMappingTransformer{}
879-
880- // case "timestamp without time zone":
881- // return &mgmtv1alpha1.JobMappingTransformer{}
882-
883- // case "timestamp with time zone":
884- // return &mgmtv1alpha1.JobMappingTransformer{}
885-
868+ case "date" :
869+ return & mgmtv1alpha1.JobMappingTransformer {
870+ Config : & mgmtv1alpha1.TransformerConfig {
871+ Config : & mgmtv1alpha1.TransformerConfig_GenerateJavascriptConfig {
872+ GenerateJavascriptConfig : & mgmtv1alpha1.GenerateJavascript {
873+ Code : `
874+ const date = new Date();
875+ const year = date.getFullYear();
876+ const month = String(date.getMonth() + 1).padStart(2, '0');
877+ const day = String(date.getDate()).padStart(2, '0');
878+ return year + "-" + month + "-" + day;
879+ ` ,
880+ },
881+ },
882+ },
883+ }, nil
884+ case "time without time zone" :
885+ return & mgmtv1alpha1.JobMappingTransformer {
886+ Config : & mgmtv1alpha1.TransformerConfig {
887+ Config : & mgmtv1alpha1.TransformerConfig_GenerateJavascriptConfig {
888+ GenerateJavascriptConfig : & mgmtv1alpha1.GenerateJavascript {
889+ Code : `
890+ const date = new Date();
891+ const hours = String(date.getHours()).padStart(2, '0');
892+ const minutes = String(date.getMinutes()).padStart(2, '0');
893+ const seconds = String(date.getSeconds()).padStart(2, '0');
894+ return hours + ":" + minutes + ":" + seconds;
895+ ` ,
896+ },
897+ },
898+ },
899+ }, nil
900+ case "time with time zone" :
901+ return & mgmtv1alpha1.JobMappingTransformer {
902+ Config : & mgmtv1alpha1.TransformerConfig {
903+ Config : & mgmtv1alpha1.TransformerConfig_GenerateJavascriptConfig {
904+ GenerateJavascriptConfig : & mgmtv1alpha1.GenerateJavascript {
905+ Code : `
906+ const date = new Date();
907+ const hours = String(date.getUTCHours()).padStart(2, '0');
908+ const minutes = String(date.getUTCMinutes()).padStart(2, '0');
909+ const seconds = String(date.getUTCSeconds()).padStart(2, '0');
910+ const timezoneOffset = -date.getTimezoneOffset();
911+ const absOffset = Math.abs(timezoneOffset);
912+ const offsetHours = String(Math.floor(absOffset / 60)).padStart(2, '0');
913+ const offsetMinutes = String(absOffset % 60).padStart(2, '0');
914+ const offsetSign = timezoneOffset >= 0 ? '+' : '-';
915+ return hours + ":" + minutes + ":" + seconds + offsetSign + offsetHours + ":" + offsetMinutes;
916+ ` ,
917+ },
918+ },
919+ },
920+ }, nil
921+ case "interval" :
922+ return & mgmtv1alpha1.JobMappingTransformer {
923+ Config : & mgmtv1alpha1.TransformerConfig {
924+ Config : & mgmtv1alpha1.TransformerConfig_GenerateJavascriptConfig {
925+ GenerateJavascriptConfig : & mgmtv1alpha1.GenerateJavascript {
926+ Code : `
927+ const date = new Date();
928+ const hours = String(date.getUTCHours()).padStart(2, '0');
929+ const minutes = String(date.getUTCMinutes()).padStart(2, '0');
930+ const seconds = String(date.getUTCSeconds()).padStart(2, '0');
931+ return hours + ":" + minutes + ":" + seconds;
932+ ` ,
933+ },
934+ },
935+ },
936+ }, nil
937+ case "timestamp without time zone" :
938+ return & mgmtv1alpha1.JobMappingTransformer {
939+ Config : & mgmtv1alpha1.TransformerConfig {
940+ Config : & mgmtv1alpha1.TransformerConfig_GenerateJavascriptConfig {
941+ GenerateJavascriptConfig : & mgmtv1alpha1.GenerateJavascript {
942+ Code : `
943+ const date = new Date();
944+ const year = date.getFullYear();
945+ const month = String(date.getMonth() + 1).padStart(2, '0');
946+ const day = String(date.getDate()).padStart(2, '0');
947+ const hours = String(date.getHours()).padStart(2, '0');
948+ const minutes = String(date.getMinutes()).padStart(2, '0');
949+ const seconds = String(date.getSeconds()).padStart(2, '0');
950+ return year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds;
951+ ` ,
952+ },
953+ },
954+ },
955+ }, nil
956+ case "timestamp with time zone" :
957+ return & mgmtv1alpha1.JobMappingTransformer {
958+ Config : & mgmtv1alpha1.TransformerConfig {
959+ Config : & mgmtv1alpha1.TransformerConfig_GenerateJavascriptConfig {
960+ GenerateJavascriptConfig : & mgmtv1alpha1.GenerateJavascript {
961+ Code : `
962+ const date = new Date();
963+ const year = date.getUTCFullYear();
964+ const month = String(date.getUTCMonth() + 1).padStart(2, '0');
965+ const day = String(date.getUTCDate()).padStart(2, '0');
966+ const hours = String(date.getUTCHours()).padStart(2, '0');
967+ const minutes = String(date.getUTCMinutes()).padStart(2, '0');
968+ const seconds = String(date.getUTCSeconds()).padStart(2, '0');
969+ const timezoneOffset = -date.getTimezoneOffset();
970+ const absOffset = Math.abs(timezoneOffset);
971+ const offsetHours = String(Math.floor(absOffset / 60)).padStart(2, '0');
972+ const offsetMinutes = String(absOffset % 60).padStart(2, '0');
973+ const offsetSign = timezoneOffset >= 0 ? '+' : '-';
974+ return year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds + offsetSign + offsetHours + ":" + offsetMinutes;
975+ ` ,
976+ },
977+ },
978+ },
979+ }, nil
886980 case "boolean" :
887981 return & mgmtv1alpha1.JobMappingTransformer {
888982 Config : & mgmtv1alpha1.TransformerConfig {
0 commit comments