Skip to content

Commit

Permalink
Merge pull request #127 from jolocom/fix/deeplinks
Browse files Browse the repository at this point in the history
Fixes for the Deeplinks implementation
  • Loading branch information
clauxx authored Sep 24, 2021
2 parents 9138423 + ceba431 commit 3d1eec2
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 11 deletions.
2 changes: 2 additions & 0 deletions src/agent.ts
Original file line number Diff line number Diff line change
Expand Up @@ -378,6 +378,8 @@ export class Agent {
// JWTs
await interxn.processInteractionToken(token)
await this.storage.store.interactionToken(token)
} else if (interxn.lastMessage.encode() === jwt) {
this.interactionManager.emit('interactionResumed', interxn)
}

return interxn
Expand Down
1 change: 1 addition & 0 deletions src/errors.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ export enum ErrorCode {
SaveExternalCredentialFailed = 'SaveExtCred',
SaveCredentialMetadataFailed = 'SaveCredMetadata',
TransportNotSupported = 'UnsuportedTransport',
TransportSubscriptionNotSuported = 'TransportSubscriptionNotSuported',

TokenExpired = 'TokenExpired',
InvalidSignature = 'InvalidSignature',
Expand Down
1 change: 1 addition & 0 deletions src/interactionManager/interactionManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ flows.forEach((f) => {
export interface InteractionEvents {
interactionCreated: (interxn: Interaction) => void
interactionUpdated: (interxn: Interaction) => void
interactionResumed: (interxn: Interaction) => void
}

/**
Expand Down
34 changes: 24 additions & 10 deletions src/transports.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
import { SDKError, ErrorCode } from './errors'
import { HTTPTransport } from './http'
import { TransportHandler, TransportDesc, TransportMessageHandler, TransportAPI } from './types'
import {
TransportHandler,
TransportDesc,
TransportMessageHandler,
TransportAPI,
} from './types'
import { WebSocketTransport } from './websocket'

export class Transportable {
Expand All @@ -18,7 +23,6 @@ export class Transportable {
set transportAPI(api: TransportAPI) {
this._transportAPI = api
}

}

export class TransportKeeper {
Expand All @@ -36,10 +40,22 @@ export class TransportKeeper {
}
}

public register(
typeName: string,
handler: TransportHandler
) {
private getTransportHandler(typeName: string) {
const transportHandler = this._transportHandlers[typeName]
if (!transportHandler) throw new SDKError(ErrorCode.TransportNotSupported)

return transportHandler
}

public subscribe(typeName: string, onMessage: TransportMessageHandler) {
const transportHandler = this.getTransportHandler(typeName)
if (!transportHandler.subscribe)
throw new SDKError(ErrorCode.TransportSubscriptionNotSuported)

transportHandler.subscribe(onMessage)
}

public register(typeName: string, handler: TransportHandler) {
this._transportHandlers[typeName] = handler
}

Expand All @@ -49,11 +65,9 @@ export class TransportKeeper {
*/
public async start(
transport: TransportDesc,
onMessage?: TransportMessageHandler
onMessage?: TransportMessageHandler,
): Promise<TransportAPI> {
const transportHandler = this._transportHandlers[transport.type]
if (!transportHandler) throw new SDKError(ErrorCode.TransportNotSupported)

const transportHandler = this.getTransportHandler(transport.type)
const transportAPI = transportHandler.start(transport, onMessage)
transportAPI.desc = transport
return transportAPI
Expand Down
6 changes: 5 additions & 1 deletion src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,17 @@ export interface TransportDesc {
/**
* @category Transports
*/
export type TransportMessageHandler = (msg: string) => Promise<void>
export type TransportMessageHandler = (
msg: string,
error?: Error,
) => Promise<void>

/**
* @category Transports
*/
export interface TransportHandler {
configure?(...args: any[]): void
subscribe?(onMessage: TransportMessageHandler): void
start(d: TransportDesc, cb?: TransportMessageHandler): TransportAPI
}

Expand Down

0 comments on commit 3d1eec2

Please sign in to comment.