UNPKG

@accounter/server

Version:
39 lines 1.55 kB
import { __decorate, __metadata } from "tslib"; import DataLoader from 'dataloader'; import { Injectable, Scope } from 'graphql-modules'; import { sql } from '@pgtyped/runtime'; import { TenantAwareDBClient } from '../../app-providers/tenant-db-client.js'; const getBusinessUsersByAuth0Ids = sql ` SELECT user_id, auth0_user_id FROM accounter_schema.business_users WHERE auth0_user_id IN $$auth0UserIds; `; const insertBusinessUser = sql ` INSERT INTO accounter_schema.business_users (user_id, auth0_user_id, business_id, role_id) VALUES ($userId, $auth0UserId, $ownerId, $roleId); `; let BusinessUsersProvider = class BusinessUsersProvider { db; constructor(db) { this.db = db; } async batchBusinessUsersByAuth0Ids(auth0UserIds) { const businessUsers = await getBusinessUsersByAuth0Ids.run({ auth0UserIds: auth0UserIds ? [...auth0UserIds] : [], }, this.db); return auth0UserIds.map(auth0UserId => businessUsers.filter(t => t.auth0_user_id === auth0UserId)); } getBusinessUsersByAuth0IdsLoader = new DataLoader((auth0UserIds) => this.batchBusinessUsersByAuth0Ids(auth0UserIds)); async insertBusinessUser(params) { return insertBusinessUser.run(params, this.db); } }; BusinessUsersProvider = __decorate([ Injectable({ scope: Scope.Operation, global: true, }), __metadata("design:paramtypes", [TenantAwareDBClient]) ], BusinessUsersProvider); export { BusinessUsersProvider }; //# sourceMappingURL=business-users.provider.js.map