diff --git a/src/Airspace/index.ts b/src/Airspace/index.ts index e655e81..4e40c40 100644 --- a/src/Airspace/index.ts +++ b/src/Airspace/index.ts @@ -1,9 +1,7 @@ -import path from 'path'; -import { getWSDLPath } from '../constants'; -import { getEndpoint } from '../config'; -import { prepareSecurity } from '../security'; import { createClient } from 'soap'; import { Config } from '../config'; +import { getWSDLPath } from '../constants'; +import { prepareSecurity } from '../security'; import { deserializer as customDeserializer } from '../utils/transformers'; export const getWSDL = ({ @@ -34,16 +32,17 @@ function createAirspaceServices(config: Config): Promise { import queryCompleteAIXMDatasets, { Resolver as QueryCompleteAIXMDatasets, } from './queryCompleteAIXMDatasets'; +import retrieveAUP, { Resolver as RetrieveAUP } from './retrieveAUP'; import retrieveAUPChain, { Resolver as RetrieveAUPChain, } from './retrieveAUPChain'; -import retrieveAUP, { Resolver as RetrieveAUP } from './retrieveAUP'; import retrieveEAUPChain, { Resolver as RetrieveEAUPChain, } from './retrieveEAUPChain'; -export interface AirspaceService { - __soapClient: object; +import { BaseServiceInterface } from '../Common/ServiceInterface'; + +export interface AirspaceService extends BaseServiceInterface { queryCompleteAIXMDatasets: QueryCompleteAIXMDatasets; retrieveAUPChain: RetrieveAUPChain; retrieveEAUPChain: RetrieveEAUPChain; @@ -53,6 +52,7 @@ export interface AirspaceService { export function getAirspaceClient(config: Config): Promise { return createAirspaceServices(config).then((client) => ({ __soapClient: client, + config, queryCompleteAIXMDatasets: queryCompleteAIXMDatasets(client), retrieveAUPChain: retrieveAUPChain(client), retrieveEAUPChain: retrieveEAUPChain(client), diff --git a/src/Common/ServiceInterface.ts b/src/Common/ServiceInterface.ts new file mode 100644 index 0000000..1ae12f9 --- /dev/null +++ b/src/Common/ServiceInterface.ts @@ -0,0 +1,6 @@ +import type { Config } from '../config'; + +export interface BaseServiceInterface { + __soapClient: object; + config: Config; +} diff --git a/src/Flight/index.ts b/src/Flight/index.ts index a70a8d7..9176750 100644 --- a/src/Flight/index.ts +++ b/src/Flight/index.ts @@ -1,10 +1,7 @@ -import path from 'path'; -import { getWSDLPath } from '../constants'; -import { getEndpoint } from '../config'; -import { prepareSecurity } from '../security'; import { createClient } from 'soap'; import { Config } from '../config'; -import util from 'util'; +import { getWSDLPath } from '../constants'; +import { prepareSecurity } from '../security'; import { deserializer as customDeserializer } from '../utils/transformers'; const getWSDL = ({ flavour, XSD_PATH }: Pick) => @@ -38,32 +35,32 @@ function createFlightServices(config: Config): Promise { }); } -import retrieveFlight from './retrieveFlight'; import type { Resolver as RetrieveFlight } from './retrieveFlight'; +import retrieveFlight from './retrieveFlight'; -import queryFlightsByAirspace from './queryFlightsByAirspace'; import type { Resolver as QueryFlightsByAirspace } from './queryFlightsByAirspace'; +import queryFlightsByAirspace from './queryFlightsByAirspace'; -import queryFlightPlans from './queryFlightPlans'; import type { Resolver as QueryFlightPlans } from './queryFlightPlans'; +import queryFlightPlans from './queryFlightPlans'; -import queryFlightsByTrafficVolume from './queryFlightsByTrafficVolume'; import type { Resolver as QueryFlightsByTrafficVolume } from './queryFlightsByTrafficVolume'; +import queryFlightsByTrafficVolume from './queryFlightsByTrafficVolume'; -import queryFlightsByMeasure from './queryFlightsByMeasure'; import type { Resolver as QueryFlightsByMeasure } from './queryFlightsByMeasure'; +import queryFlightsByMeasure from './queryFlightsByMeasure'; -import queryFlightsByAerodrome from './queryFlightsByAerodrome'; import type { Resolver as QueryFlightsByAerodrome } from './queryFlightsByAerodrome'; +import queryFlightsByAerodrome from './queryFlightsByAerodrome'; -import queryFlightsByAerodromeSet from './queryFlightsByAerodromeSet'; import type { Resolver as QueryFlightsByAerodromeSet } from './queryFlightsByAerodromeSet'; +import queryFlightsByAerodromeSet from './queryFlightsByAerodromeSet'; -import queryFlightsByAircraftOperator from './queryFlightsByAircraftOperator'; +import { BaseServiceInterface } from '../Common/ServiceInterface'; import type { Resolver as QueryFlightsByAircraftOperator } from './queryFlightsByAircraftOperator'; +import queryFlightsByAircraftOperator from './queryFlightsByAircraftOperator'; -export interface FlightService { - __soapClient: object; +export interface FlightService extends BaseServiceInterface { retrieveFlight: RetrieveFlight; queryFlightsByAirspace: QueryFlightsByAirspace; queryFlightPlans: QueryFlightPlans; @@ -77,6 +74,7 @@ export interface FlightService { export function getFlightClient(config: Config): Promise { return createFlightServices(config).then((client) => ({ __soapClient: client, + config, retrieveFlight: retrieveFlight(client), queryFlightsByAirspace: queryFlightsByAirspace(client), queryFlightPlans: queryFlightPlans(client), diff --git a/src/Flow/index.ts b/src/Flow/index.ts index 3aa8f3f..bffdb6e 100644 --- a/src/Flow/index.ts +++ b/src/Flow/index.ts @@ -1,10 +1,7 @@ -import path from 'path'; -import { getWSDLPath } from '../constants'; -import { getEndpoint } from '../config'; -import { prepareSecurity } from '../security'; import { createClient } from 'soap'; import { Config } from '../config'; -import util from 'util'; +import { getWSDLPath } from '../constants'; +import { prepareSecurity } from '../security'; import { deserializer as customDeserializer } from '../utils/transformers'; const getWSDL = ({ flavour, XSD_PATH }: Pick) => @@ -38,31 +35,35 @@ function createFlowServices(config: Config): Promise { }); } -import retrieveSectorConfigurationPlan from './retrieveSectorConfigurationPlan'; -import { Resolver as RetrieveSectorConfigurationPlan } from './retrieveSectorConfigurationPlan'; -import queryTrafficCountsByAirspace from './queryTrafficCountsByAirspace'; -import { Resolver as QueryTrafficCountsByAirspace } from './queryTrafficCountsByAirspace'; -import queryRegulations from './queryRegulations'; -import { Resolver as QueryRegulations } from './queryRegulations'; -import queryHotspots from './queryHotspots'; -import { Resolver as QueryHotspots } from './queryHotspots'; -import queryTrafficCountsByTrafficVolume from './queryTrafficCountsByTrafficVolume'; -import { Resolver as QueryTrafficCountsByTrafficVolume } from './queryTrafficCountsByTrafficVolume'; -import retrieveOTMVPlan from './retrieveOTMVPlan'; -import { Resolver as RetrieveOTMVPlan } from './retrieveOTMVPlan'; -import updateOTMVPlan from './updateOTMVPlan'; -import { Resolver as UpdateOTMVPlan } from './updateOTMVPlan'; +import { BaseServiceInterface } from '../Common/ServiceInterface'; +import queryHotspots, { Resolver as QueryHotspots } from './queryHotspots'; +import queryRegulations, { + Resolver as QueryRegulations, +} from './queryRegulations'; +import queryTrafficCountsByAirspace, { + Resolver as QueryTrafficCountsByAirspace, +} from './queryTrafficCountsByAirspace'; +import queryTrafficCountsByTrafficVolume, { + Resolver as QueryTrafficCountsByTrafficVolume, +} from './queryTrafficCountsByTrafficVolume'; import retrieveCapacityPlan, { Resolver as RetrieveCapacityPlan, } from './retrieveCapacityPlan'; -import updateCapacityPlan from './updateCapacityPlan'; -import { Resolver as UpdateCapacityPlan } from './updateCapacityPlan'; +import retrieveOTMVPlan, { + Resolver as RetrieveOTMVPlan, +} from './retrieveOTMVPlan'; import retrieveRunwayConfigurationPlan, { Resolver as RetrieveRunwayConfigurationPlan, } from './retrieveRunwayConfigurationPlan'; +import retrieveSectorConfigurationPlan, { + Resolver as RetrieveSectorConfigurationPlan, +} from './retrieveSectorConfigurationPlan'; +import updateCapacityPlan, { + Resolver as UpdateCapacityPlan, +} from './updateCapacityPlan'; +import updateOTMVPlan, { Resolver as UpdateOTMVPlan } from './updateOTMVPlan'; -export interface FlowService { - __soapClient: object; +export interface FlowService extends BaseServiceInterface { retrieveSectorConfigurationPlan: RetrieveSectorConfigurationPlan; queryTrafficCountsByAirspace: QueryTrafficCountsByAirspace; queryRegulations: QueryRegulations; @@ -78,6 +79,7 @@ export interface FlowService { export function getFlowClient(config: Config): Promise { return createFlowServices(config).then((client) => ({ __soapClient: client, + config, retrieveSectorConfigurationPlan: retrieveSectorConfigurationPlan(client), queryTrafficCountsByAirspace: queryTrafficCountsByAirspace(client), queryRegulations: queryRegulations(client), diff --git a/src/GeneralInformation/index.ts b/src/GeneralInformation/index.ts index f42e582..3e208c1 100644 --- a/src/GeneralInformation/index.ts +++ b/src/GeneralInformation/index.ts @@ -1,9 +1,7 @@ +import { createClient } from 'soap'; +import { Config, getEndpoint } from '../config'; import { getWSDLPath } from '../constants'; -import { getEndpoint } from '../config'; import { prepareSecurity } from '../security'; -import { createClient } from 'soap'; -import { Config } from '../config'; -import util from 'util'; import { deserializer as customDeserializer } from '../utils/transformers'; const getWSDL = ({ flavour, XSD_PATH }: Pick) => @@ -36,12 +34,12 @@ function createGeneralInformationServices( }); } +import { BaseServiceInterface } from '../Common/ServiceInterface'; import queryNMB2BWSDLs, { Resolver as QueryNMB2BWSDLs, } from './queryNMB2BWSDLs'; -export interface GeneralInformationService { - __soapClient: object; +export interface GeneralInformationService extends BaseServiceInterface { queryNMB2BWSDLs: QueryNMB2BWSDLs; } @@ -51,6 +49,7 @@ export function getGeneralInformationClient( return createGeneralInformationServices(config).then( (client) => ({ __soapClient: client, + config, queryNMB2BWSDLs: queryNMB2BWSDLs(client), }), (err) => { diff --git a/src/PublishSubscribe/index.ts b/src/PublishSubscribe/index.ts index 0bbf125..fd24d58 100644 --- a/src/PublishSubscribe/index.ts +++ b/src/PublishSubscribe/index.ts @@ -1,9 +1,7 @@ -import path from 'path'; +import { createClient } from 'soap'; +import { Config, getEndpoint } from '../config'; import { getWSDLPath } from '../constants'; -import { getEndpoint } from '../config'; import { prepareSecurity } from '../security'; -import { createClient } from 'soap'; -import { Config } from '../config'; import { deserializer as customDeserializer } from '../utils/transformers'; const getWSDL = ({ flavour, XSD_PATH }: Pick) => @@ -30,19 +28,24 @@ function createPublishSubscribeServices( ); } -import listSubscriptions from './listSubscriptions'; -import { Resolver as ListSubscriptions } from './listSubscriptions'; -import createSubscription from './createSubscription'; -import { Resolver as CreateSubscription } from './createSubscription'; -import deleteSubscription from './deleteSubscription'; -import { Resolver as DeleteSubscription } from './deleteSubscription'; -import resumeSubscription from './resumeSubscription'; -import { Resolver as ResumeSubscription } from './resumeSubscription'; -import pauseSubscription from './pauseSubscription'; -import { Resolver as PauseSubscription } from './pauseSubscription'; +import createSubscription, { + Resolver as CreateSubscription, +} from './createSubscription'; +import deleteSubscription, { + Resolver as DeleteSubscription, +} from './deleteSubscription'; +import listSubscriptions, { + Resolver as ListSubscriptions, +} from './listSubscriptions'; +import pauseSubscription, { + Resolver as PauseSubscription, +} from './pauseSubscription'; +import resumeSubscription, { + Resolver as ResumeSubscription, +} from './resumeSubscription'; +import { BaseServiceInterface } from '../Common/ServiceInterface'; -export interface PublishSubscribeService { - __soapClient: object; +export interface PublishSubscribeService extends BaseServiceInterface { listSubscriptions: ListSubscriptions; createSubscription: CreateSubscription; deleteSubscription: DeleteSubscription; @@ -53,8 +56,9 @@ export interface PublishSubscribeService { export function getPublishSubscribeClient( config: Config, ): Promise { - return createPublishSubscribeServices(config).then(client => ({ + return createPublishSubscribeServices(config).then((client) => ({ __soapClient: client, + config, listSubscriptions: listSubscriptions(client), createSubscription: createSubscription(client), deleteSubscription: deleteSubscription(client), diff --git a/src/index.test.ts b/src/index.test.ts index 2fcdf3a..3fb14ed 100644 --- a/src/index.test.ts +++ b/src/index.test.ts @@ -12,8 +12,6 @@ import { Config } from './config'; import { describe, test, expect } from 'vitest'; -// jest.setTimeout(20000); - describe('Main API', () => { test('makeB2BClient', async () => { const b2bClient = await makeB2BClient(b2bOptions as Config); @@ -34,5 +32,6 @@ describe('Main API', () => { ])('%O', async (fn) => { const res = await fn(b2bOptions); expect(res).toBeDefined(); + expect(res.config).toEqual(b2bOptions); }); });