bam-ticketing-sdk
Version:
SDK for B.A.M Ticketing API
28 lines (22 loc) • 660 B
text/typescript
import {
Jwt,
RefreshableJwt,
ServiceAccessData as ServiceCredentialData,
} from '../auth/types'
import { AuthService } from '../auth'
import { ICredential, CredentialType } from './credential'
export class ServiceCredentials implements ICredential {
readonly type: CredentialType.Service
private jwt?: Jwt
constructor(private credentials: ServiceCredentialData) {}
getToken(): Jwt | RefreshableJwt {
return this.jwt
}
async authorize(authService: AuthService): Promise<Jwt> {
this.jwt = await authService.serviceLogin(this.credentials)
return this.jwt
}
refreshToken(authService: AuthService) {
return this.authorize(authService)
}
}