@@ -150,55 +150,59 @@ export default class PostgresMetaTriggers {
150150 async update (
151151 id : number ,
152152 {
153- name : newName ,
153+ name,
154154 enabled_mode,
155155 } : {
156- name : string
157- enabled_mode : 'ORIGIN' | 'REPLICA' | 'ALWAYS' | 'DISABLED'
156+ name ? : string
157+ enabled_mode ? : 'ORIGIN' | 'REPLICA' | 'ALWAYS' | 'DISABLED'
158158 }
159159 ) : Promise < PostgresMetaResult < PostgresTrigger > > {
160- const { data : triggerRecord , error } = await this . retrieve ( { id } )
161-
160+ const { data : old , error } = await this . retrieve ( { id } )
162161 if ( error ) {
163162 return { data : null , error }
164163 }
165164
166- let enabledModeSql
167- const enabledMode = enabled_mode . toUpperCase ( )
168- const { name : currentName , schema : schema , table : table } = triggerRecord !
169- const qualifiedTableName = `${ ident ( schema ) } .${ ident ( table ) } `
170- const updateNameSql =
171- newName && newName !== currentName
172- ? `ALTER TRIGGER ${ ident ( currentName ) } ON ${ qualifiedTableName } RENAME TO ${ ident (
173- newName
174- ) } ;`
175- : ''
176-
177- if ( [ 'ORIGIN' , 'REPLICA' , 'ALWAYS' , 'DISABLED' ] . includes ( enabledMode ) ) {
178- if ( enabledMode === 'DISABLED' ) {
179- enabledModeSql = `ALTER TABLE ${ qualifiedTableName } DISABLE TRIGGER ${ ident ( currentName ) } ;`
180- } else {
181- enabledModeSql = `ALTER TABLE ${ qualifiedTableName } ENABLE ${
182- [ 'REPLICA' , 'ALWAYS' ] . includes ( enabledMode ) ? enabledMode : ''
183- } TRIGGER ${ ident ( currentName ) } ;`
184- }
165+ let enabledModeSql = ''
166+ switch ( enabled_mode ) {
167+ case 'ORIGIN' :
168+ enabledModeSql = `ALTER TABLE ${ ident ( old ! . schema ) } .${ ident (
169+ old ! . table
170+ ) } ENABLE TRIGGER ${ ident ( old ! . name ) } ;`
171+ break
172+ case 'DISABLED' :
173+ enabledModeSql = `ALTER TABLE ${ ident ( old ! . schema ) } .${ ident (
174+ old ! . table
175+ ) } DISABLE TRIGGER ${ ident ( old ! . name ) } ;`
176+ break
177+ case 'REPLICA' :
178+ case 'ALWAYS' :
179+ enabledModeSql = `ALTER TABLE ${ ident ( old ! . schema ) } .${ ident (
180+ old ! . table
181+ ) } ENABLE ${ enabled_mode } TRIGGER ${ ident ( old ! . name ) } ;`
182+ break
183+ default :
184+ break
185185 }
186+ const nameSql =
187+ name && name !== old ! . name
188+ ? `ALTER TRIGGER ${ ident ( old ! . name ) } ON ${ ident ( old ! . schema ) } .${ ident (
189+ old ! . table
190+ ) } RENAME TO ${ ident ( name ) } ;`
191+ : ''
186192
187193 // updateNameSql must be last
188- const sql = `BEGIN; ${ enabledModeSql } ${ updateNameSql } COMMIT;`
189-
194+ const sql = `BEGIN; ${ enabledModeSql } ; ${ nameSql } ; COMMIT;`
190195 {
191196 const { error } = await this . query ( sql )
192197
193198 if ( error ) {
194199 return { data : null , error }
195200 }
196201 }
197-
198202 return await this . retrieve ( { id } )
199203 }
200204
201- async remove ( id : number , { cascade = false } ) : Promise < PostgresMetaResult < PostgresTrigger > > {
205+ async remove ( id : number , { cascade = false } = { } ) : Promise < PostgresMetaResult < PostgresTrigger > > {
202206 const { data : triggerRecord , error } = await this . retrieve ( { id } )
203207
204208 if ( error ) {
0 commit comments