@@ -29,8 +29,8 @@ type SponsorshipEventRow = {
2929 date_created : string | Date ;
3030 github_id : string ;
3131 github_login : string | null ;
32- dashboard_user_id : string | null ;
33- dashboard_username : string | null ;
32+ dashboard_account_id : string | null ;
33+ dashboard_account_name : string | null ;
3434 reason : SponsorshipReason ;
3535 meta : string | AdditionMeta ;
3636} ;
@@ -40,8 +40,8 @@ export type ManualAdditionRow = {
4040 date_created : string | Date ;
4141 github_id : string ;
4242 github_login : string | null ;
43- dashboard_user_id : string | null ;
44- dashboard_username : string | null ;
43+ dashboard_account_id : string | null ;
44+ dashboard_account_name : string | null ;
4545 added_by : string | null ;
4646 amount : string | number ;
4747 reason : 'one_time_sponsorship' | 'other' ;
@@ -58,8 +58,8 @@ type SponsorsChartRow = {
5858export type SponsorAccountRow = {
5959 github_id : string ;
6060 github_login : string | null ;
61- dashboard_user_id : string | null ;
62- dashboard_username : string | null ;
61+ dashboard_account_id : string | null ;
62+ dashboard_account_name : string | null ;
6363 is_active : string | number ;
6464 has_recurring : string | number ;
6565 current_monthly_amount : string | number | null ;
@@ -87,6 +87,9 @@ const activeSponsorSql = '(current_sponsors.github_id IS NOT NULL OR legacy_spon
8787const sponsorLoginSql = 'COALESCE(current_sponsors.github_login, legacy_sponsors.github_login)' ;
8888const sponsorMonthlyAmountSql = 'COALESCE(current_sponsors.monthly_amount, legacy_sponsors.monthly_amount)' ;
8989
90+ const dashboardAccountIdSql = 'COALESCE(directus_users.id, gp_orgs.id)' ;
91+ const dashboardAccountNameSql = 'COALESCE(directus_users.github_username, gp_orgs.name)' ;
92+
9093const joinSponsors = ( database : Knex , query : Knex . QueryBuilder ) => query
9194 . leftJoin ( 'sponsors as current_sponsors' , 'current_sponsors.github_id' , 'additions.github_id' )
9295 . leftJoin ( 'sponsors as legacy_sponsors' , database . raw ( `legacy_sponsors.github_id = CASE additions.github_id ${ redirectCases } END` , redirectEntries . flatMap ( ( [ source , target ] ) => [ target , source ] ) ) ) ;
@@ -110,7 +113,7 @@ export const applySearch = (query: Knex.QueryBuilder, search: string | undefined
110113 }
111114
112115 builder . orWhereRaw ( `${ sponsorLoginSql } LIKE ?` , [ value ] )
113- . orWhere ( 'directus_users.github_username' , 'like' , value )
116+ . orWhereRaw ( ` ${ dashboardAccountNameSql } LIKE ?` , [ value ] )
114117 . orWhereRaw ( `${ metadataGithubLoginSql } LIKE ?` , [ value ] ) ;
115118 } ) ;
116119} ;
@@ -129,7 +132,7 @@ export const applyManualSearch = (query: Knex.QueryBuilder, search: string | und
129132 }
130133
131134 builder . orWhereRaw ( `${ sponsorLoginSql } LIKE ?` , [ value ] )
132- . orWhere ( 'dashboard_users.github_username' , 'like' , value )
135+ . orWhereRaw ( ` ${ dashboardAccountNameSql } LIKE ?` , [ value ] )
133136 . orWhereRaw ( `${ additionGithubLoginSql ( ) } LIKE ?` , [ value ] )
134137 . orWhereRaw ( `JSON_UNQUOTE(JSON_EXTRACT(additions.meta, '$.comment')) LIKE ?` , [ value ] )
135138 . orWhereRaw ( `${ addedBySql } LIKE ?` , [ value ] ) ;
@@ -160,8 +163,8 @@ export const normalizeSponsorshipEvent = (row: SponsorshipEventRow): Sponsorship
160163 date : new Date ( row . date_created ) . toISOString ( ) ,
161164 githubId : row . github_id ,
162165 githubLogin : row . github_login ,
163- dashboardUserId : row . dashboard_user_id ,
164- dashboardUsername : row . dashboard_username ,
166+ dashboardAccountId : row . dashboard_account_id ,
167+ dashboardAccountName : row . dashboard_account_name ,
165168 reason : row . reason ,
166169 manual : meta . manual === true ,
167170 amountInDollars,
@@ -178,8 +181,8 @@ export const normalizeManualAddition = (row: ManualAdditionRow): ManualAddition
178181 date : new Date ( row . date_created ) . toISOString ( ) ,
179182 githubId : row . github_id ,
180183 githubLogin : row . github_login ,
181- dashboardUserId : row . dashboard_user_id ,
182- dashboardUsername : row . dashboard_username ,
184+ dashboardAccountId : row . dashboard_account_id ,
185+ dashboardAccountName : row . dashboard_account_name ,
183186 addedBy : row . added_by ,
184187 type : row . reason === 'one_time_sponsorship' ? 'payment' : 'other' ,
185188 credits : toNumber ( row . amount ) ,
@@ -206,8 +209,8 @@ export const fillChartPoints = (monthKeys: string[], rows: SponsorsChartRow[]):
206209export const normalizeSponsorAccount = ( row : SponsorAccountRow ) : SponsorAccount => ( {
207210 githubId : row . github_id ,
208211 githubLogin : row . github_login ,
209- dashboardUserId : row . dashboard_user_id ,
210- dashboardUsername : row . dashboard_username ,
212+ dashboardAccountId : row . dashboard_account_id ,
213+ dashboardAccountName : row . dashboard_account_name ,
211214 status : toNumber ( row . is_active ) ? 'active' : toNumber ( row . has_recurring ) ? 'former' : 'one-time' ,
212215 currentMonthlyAmount : row . current_monthly_amount === null ? null : toNumber ( row . current_monthly_amount ) ,
213216 periodSponsorshipValue : toNumber ( row . period_sponsorship_value ) ,
@@ -305,7 +308,8 @@ export const getManualAdditions = async (database: Knex, query: ManualAdditionsQ
305308 const base = database ( 'gp_credits_additions as additions' )
306309 . whereIn ( 'additions.reason' , [ 'one_time_sponsorship' , 'other' ] )
307310 . whereRaw ( `JSON_UNQUOTE(JSON_EXTRACT(additions.meta, '$.manual')) = 'true'` )
308- . leftJoin ( 'directus_users as dashboard_users' , 'dashboard_users.external_identifier' , 'additions.github_id' )
311+ . leftJoin ( 'directus_users' , 'directus_users.external_identifier' , 'additions.github_id' )
312+ . leftJoin ( 'gp_orgs' , 'gp_orgs.github_id' , 'additions.github_id' )
309313 . leftJoin ( 'directus_users as added_by_users' , 'added_by_users.id' , 'additions.user_updated' ) ;
310314
311315 joinSponsors ( database , base ) ;
@@ -318,7 +322,7 @@ export const getManualAdditions = async (database: Knex, query: ManualAdditionsQ
318322
319323 const sortExpressions : Record < ManualAdditionsQuery [ 'sort' ] , string > = {
320324 date : 'additions.date_created' ,
321- sponsor : `COALESCE(${ sponsorLoginSql } , dashboard_users.github_username , ${ additionGithubLoginSql ( ) } , additions.github_id)` ,
325+ sponsor : `COALESCE(${ sponsorLoginSql } , ${ dashboardAccountNameSql } , ${ additionGithubLoginSql ( ) } , additions.github_id)` ,
322326 type : 'additions.reason' ,
323327 credits : 'additions.amount' ,
324328 addedBy : addedBySql ,
@@ -330,9 +334,9 @@ export const getManualAdditions = async (database: Knex, query: ManualAdditionsQ
330334 'additions.id' ,
331335 'additions.date_created' ,
332336 'additions.github_id' ,
333- database . raw ( `COALESCE(${ sponsorLoginSql } , dashboard_users.github_username , ${ additionGithubLoginSql ( ) } ) AS github_login` ) ,
334- database . raw ( 'dashboard_users.id AS dashboard_user_id' ) ,
335- database . raw ( 'dashboard_users.github_username AS dashboard_username' ) ,
337+ database . raw ( `COALESCE(${ sponsorLoginSql } , ${ dashboardAccountNameSql } , ${ additionGithubLoginSql ( ) } ) AS github_login` ) ,
338+ database . raw ( ` ${ dashboardAccountIdSql } AS dashboard_account_id` ) ,
339+ database . raw ( ` ${ dashboardAccountNameSql } AS dashboard_account_name` ) ,
336340 database . raw ( `${ addedBySql } AS added_by` ) ,
337341 'additions.amount' ,
338342 'additions.reason' ,
@@ -350,7 +354,8 @@ export const getManualAdditions = async (database: Knex, query: ManualAdditionsQ
350354export const getSponsorshipEvents = async ( database : Knex , range : SponsorsPeriodRange , query : EventsQuery ) : Promise < PageResult < SponsorshipEvent > > => {
351355 const valueSql = sponsorshipValueSql ( ) ;
352356 const base = periodEventsQuery ( database , range )
353- . leftJoin ( 'directus_users' , 'directus_users.external_identifier' , 'additions.github_id' ) ;
357+ . leftJoin ( 'directus_users' , 'directus_users.external_identifier' , 'additions.github_id' )
358+ . leftJoin ( 'gp_orgs' , 'gp_orgs.github_id' , 'additions.github_id' ) ;
354359
355360 joinSponsors ( database , base ) ;
356361
@@ -362,7 +367,7 @@ export const getSponsorshipEvents = async (database: Knex, range: SponsorsPeriod
362367
363368 const sortExpressions : Record < EventsQuery [ 'sort' ] , string > = {
364369 date : 'additions.date_created' ,
365- sponsor : `COALESCE(${ sponsorLoginSql } , directus_users.github_username , ${ additionGithubLoginSql ( ) } , additions.github_id)` ,
370+ sponsor : `COALESCE(${ sponsorLoginSql } , ${ dashboardAccountNameSql } , ${ additionGithubLoginSql ( ) } , additions.github_id)` ,
366371 type : 'additions.reason' ,
367372 sponsorshipValue : `(${ valueSql } )` ,
368373 } ;
@@ -373,9 +378,9 @@ export const getSponsorshipEvents = async (database: Knex, range: SponsorsPeriod
373378 'additions.id' ,
374379 'additions.date_created' ,
375380 'additions.github_id' ,
376- database . raw ( `COALESCE(${ sponsorLoginSql } , directus_users.github_username , ${ additionGithubLoginSql ( ) } ) AS github_login` ) ,
377- database . raw ( 'directus_users.id AS dashboard_user_id' ) ,
378- database . raw ( 'directus_users.github_username AS dashboard_username' ) ,
381+ database . raw ( `COALESCE(${ sponsorLoginSql } , ${ dashboardAccountNameSql } , ${ additionGithubLoginSql ( ) } ) AS github_login` ) ,
382+ database . raw ( ` ${ dashboardAccountIdSql } AS dashboard_account_id` ) ,
383+ database . raw ( ` ${ dashboardAccountNameSql } AS dashboard_account_name` ) ,
379384 'additions.reason' ,
380385 'additions.meta' ,
381386 ) . orderByRaw ( `${ sortExpressions [ query . sort ] } ${ query . direction } ` ) . orderBy ( 'additions.id' , 'desc' )
@@ -406,7 +411,8 @@ export const getSponsorAccounts = async (database: Knex, range: SponsorsPeriodRa
406411
407412 const base = database . from ( periodAccounts . as ( 'additions' ) )
408413 . leftJoin ( recurringHistory . as ( 'history' ) , 'history.github_id' , 'additions.github_id' )
409- . leftJoin ( 'directus_users' , 'directus_users.external_identifier' , 'additions.github_id' ) ;
414+ . leftJoin ( 'directus_users' , 'directus_users.external_identifier' , 'additions.github_id' )
415+ . leftJoin ( 'gp_orgs' , 'gp_orgs.github_id' , 'additions.github_id' ) ;
410416
411417 joinSponsors ( database , base ) ;
412418 applySearch ( base , query . search , 'additions.github_login' ) ;
@@ -424,11 +430,11 @@ export const getSponsorAccounts = async (database: Knex, range: SponsorsPeriodRa
424430 }
425431
426432 if ( query . linked !== undefined ) {
427- base . whereRaw ( `directus_users.id IS ${ query . linked ? 'NOT ' : '' } NULL` ) ;
433+ base . whereRaw ( `${ dashboardAccountIdSql } IS ${ query . linked ? 'NOT ' : '' } NULL` ) ;
428434 }
429435
430436 const sortExpressions : Record < AccountsQuery [ 'sort' ] , string > = {
431- sponsor : `COALESCE(${ sponsorLoginSql } , directus_users.github_username , additions.github_login, additions.github_id)` ,
437+ sponsor : `COALESCE(${ sponsorLoginSql } , ${ dashboardAccountNameSql } , additions.github_login, additions.github_id)` ,
432438 status : `CASE
433439 WHEN ${ activeSponsorSql } THEN 0
434440 WHEN COALESCE(history.has_recurring, 0) = 1 THEN 1
@@ -444,9 +450,9 @@ export const getSponsorAccounts = async (database: Knex, range: SponsorsPeriodRa
444450 base . clone ( ) . clearSelect ( ) . clearOrder ( ) . count ( { total : 'additions.github_id' } ) . first ( ) ,
445451 base . clone ( ) . select (
446452 'additions.github_id' ,
447- database . raw ( `COALESCE(${ sponsorLoginSql } , directus_users.github_username , additions.github_login) AS github_login` ) ,
448- database . raw ( 'directus_users.id AS dashboard_user_id' ) ,
449- database . raw ( 'directus_users.github_username AS dashboard_username' ) ,
453+ database . raw ( `COALESCE(${ sponsorLoginSql } , ${ dashboardAccountNameSql } , additions.github_login) AS github_login` ) ,
454+ database . raw ( ` ${ dashboardAccountIdSql } AS dashboard_account_id` ) ,
455+ database . raw ( ` ${ dashboardAccountNameSql } AS dashboard_account_name` ) ,
450456 database . raw ( `IF(${ activeSponsorSql } , 1, 0) AS is_active` ) ,
451457 database . raw ( 'COALESCE(history.has_recurring, 0) AS has_recurring' ) ,
452458 database . raw ( `${ sponsorMonthlyAmountSql } AS current_monthly_amount` ) ,
0 commit comments