Skip to main content

Class: PostgresStore

Defined in: javascript/src/stores/postgres-store.ts:52

Credit store backed by a raw Postgres connection.

Uses dependency injection for the PG pool constructor — supply a real pg.Pool for production, or a mock for tests.

Args: databaseUrl: Postgres connection string. poolCtor: Optional PG Pool constructor (default: loads pg on first use).

Implements

Constructors

Constructor

new PostgresStore(databaseUrl, poolCtor?): PostgresStore

Defined in: javascript/src/stores/postgres-store.ts:57

Parameters

databaseUrl

string

poolCtor?

PgPoolConstructor

Returns

PostgresStore

Methods

addCredits()

addCredits(userId, amount, type?, metadata?, expiresAt?): Promise<AddCreditsResult>

Defined in: javascript/src/stores/postgres-store.ts:128

Parameters

userId

string

amount

number

type?

string = "adjustment"

metadata?

CreditMetadata | null

expiresAt?

Date | null

Returns

Promise<AddCreditsResult>

Implementation of

CreditStore.addCredits


addTeamMember()

addTeamMember(teamId, userId, role?, spendCap?): Promise<AddTeamMemberResult>

Defined in: javascript/src/stores/postgres-store.ts:464

Parameters

teamId

string

userId

string

role?

string = "member"

spendCap?

number | null

Returns

Promise<AddTeamMemberResult>

Implementation of

CreditStore.addTeamMember


aggregateStats()

aggregateStats(start, end): Promise<AggregateStats>

Defined in: javascript/src/stores/postgres-store.ts:424

Parameters

start

Date

end

Date

Returns

Promise<AggregateStats>

Implementation of

CreditStore.aggregateStats


checkAllowance()

checkAllowance(userId): Promise<AllowanceResult>

Defined in: javascript/src/stores/postgres-store.ts:300

Parameters

userId

string

Returns

Promise<AllowanceResult>

Implementation of

CreditStore.checkAllowance


checkFeature()

checkFeature(userId, feature): Promise<CheckFeatureResult>

Defined in: javascript/src/stores/postgres-store.ts:280

Parameters

userId

string

feature

string

Returns

Promise<CheckFeatureResult>

Implementation of

CreditStore.checkFeature


checkSpendCap()

checkSpendCap(userId, model?, amount?): Promise<CapCheckResult>

Defined in: javascript/src/stores/postgres-store.ts:320

Parameters

userId

string

model?

string | null

amount?

number

Returns

Promise<CapCheckResult>

Implementation of

CreditStore.checkSpendCap


close()

close(): Promise<void>

Defined in: javascript/src/stores/postgres-store.ts:83

Returns

Promise<void>


createTeam()

createTeam(name, initialBalance?): Promise<CreateTeamResult>

Defined in: javascript/src/stores/postgres-store.ts:438

Parameters

name

string

initialBalance?

number = 0

Returns

Promise<CreateTeamResult>

Implementation of

CreditStore.createTeam


dailySpend()

dailySpend(start, end): Promise<DailySpendRow[]>

Defined in: javascript/src/stores/postgres-store.ts:410

Parameters

start

Date

end

Date

Returns

Promise<DailySpendRow[]>

Implementation of

CreditStore.dailySpend


deductCredits()

deductCredits(userId, reservationId, amount, idempotencyKey?, metadata?): Promise<DeductionResult>

Defined in: javascript/src/stores/postgres-store.ts:197

Parameters

userId

string

reservationId

string

amount

number

idempotencyKey?

string | null

metadata?

CreditMetadata | null

Returns

Promise<DeductionResult>

Implementation of

CreditStore.deductCredits


deductTeam()

deductTeam(teamId, userId, amount, metadata?): Promise<TeamDeductionResult>

Defined in: javascript/src/stores/postgres-store.ts:492

Parameters

teamId

string

userId

string

amount

number

metadata?

CreditMetadata | null

Returns

Promise<TeamDeductionResult>

Implementation of

CreditStore.deductTeam


getActivePricing()

getActivePricing(): Promise<PricingConfigResult | null>

Defined in: javascript/src/stores/postgres-store.ts:246

Returns

Promise<PricingConfigResult | null>

Implementation of

CreditStore.getActivePricing


getBalance()

getBalance(userId): Promise<BalanceResult>

Defined in: javascript/src/stores/postgres-store.ts:115

Parameters

userId

string

Returns

Promise<BalanceResult>

Implementation of

CreditStore.getBalance


getTeamBalance()

getTeamBalance(teamId): Promise<TeamBalanceResult>

Defined in: javascript/src/stores/postgres-store.ts:447

Parameters

teamId

string

Returns

Promise<TeamBalanceResult>

Implementation of

CreditStore.getTeamBalance


getTeamMembers()

getTeamMembers(teamId): Promise<TeamMember[]>

Defined in: javascript/src/stores/postgres-store.ts:479

Parameters

teamId

string

Returns

Promise<TeamMember[]>

Implementation of

CreditStore.getTeamMembers


getUserPlan()

getUserPlan(userId): Promise<GetUserPlanResult>

Defined in: javascript/src/stores/postgres-store.ts:265

Parameters

userId

string

Returns

Promise<GetUserPlanResult>

Implementation of

CreditStore.getUserPlan


incrementUsageWindow()

incrementUsageWindow(userId, planId, amount): Promise<void>

Defined in: javascript/src/stores/postgres-store.ts:314

Parameters

userId

string

planId

string

amount

number

Returns

Promise<void>

Implementation of

CreditStore.incrementUsageWindow


refundCredits()

refundCredits(transactionId, amount?, reason?, metadata?): Promise<RefundResult>

Defined in: javascript/src/stores/postgres-store.ts:341

Parameters

transactionId

string

amount?

number

reason?

string

metadata?

CreditMetadata | null

Returns

Promise<RefundResult>

Implementation of

CreditStore.refundCredits


reserveCredits()

reserveCredits(userId, amount, operationType, metadata?, minBalance?): Promise<ReserveResult>

Defined in: javascript/src/stores/postgres-store.ts:150

Parameters

userId

string

amount

number

operationType

string

metadata?

CreditMetadata | null

minBalance?

number = 5

Returns

Promise<ReserveResult>

Implementation of

CreditStore.reserveCredits


setActivePricing()

setActivePricing(config, label?): Promise<string>

Defined in: javascript/src/stores/postgres-store.ts:254

Parameters

config

PricingConfigData

label?

string | null

Returns

Promise<string>

Implementation of

CreditStore.setActivePricing


setup()

setup(_databaseUrl?): Promise<SetupResult>

Defined in: javascript/src/stores/postgres-store.ts:108

Parameters

_databaseUrl?

string | null

Returns

Promise<SetupResult>

Implementation of

CreditStore.setup


setUserPlan()

setUserPlan(userId, planId): Promise<SetUserPlanResult>

Defined in: javascript/src/stores/postgres-store.ts:291

Parameters

userId

string

planId

string

Returns

Promise<SetUserPlanResult>

Implementation of

CreditStore.setUserPlan


spendByModel()

spendByModel(start, end): Promise<SpendByModelRow[]>

Defined in: javascript/src/stores/postgres-store.ts:387

Parameters

start

Date

end

Date

Returns

Promise<SpendByModelRow[]>

Implementation of

CreditStore.spendByModel


spendByUser()

spendByUser(start, end): Promise<SpendByUserRow[]>

Defined in: javascript/src/stores/postgres-store.ts:375

Parameters

start

Date

end

Date

Returns

Promise<SpendByUserRow[]>

Implementation of

CreditStore.spendByUser


sweepExpiredCredits()

sweepExpiredCredits(dryRun?): Promise<SweepResult>

Defined in: javascript/src/stores/postgres-store.ts:526

Parameters

dryRun?

boolean = false

Returns

Promise<SweepResult>

Implementation of

CreditStore.sweepExpiredCredits


topUsers()

topUsers(limit, start, end): Promise<TopUserRow[]>

Defined in: javascript/src/stores/postgres-store.ts:399

Parameters

limit

number

start

Date

end

Date

Returns

Promise<TopUserRow[]>

Implementation of

CreditStore.topUsers