diff --git a/packages/backend/src/serializers/connection.js b/packages/backend/src/serializers/connection.js new file mode 100644 index 00000000..e285f1e2 --- /dev/null +++ b/packages/backend/src/serializers/connection.js @@ -0,0 +1,16 @@ +const connectionSerializer = (connection) => { + return { + id: connection.id, + key: connection.key, + reconnectable: connection.reconnectable, + appAuthClientId: connection.appAuthClientId, + formattedData: { + screenName: connection.formattedData.screenName, + }, + verified: connection.verified, + createdAt: connection.createdAt.getTime(), + updatedAt: connection.updatedAt.getTime(), + }; +}; + +export default connectionSerializer; diff --git a/packages/backend/src/serializers/connection.test.js b/packages/backend/src/serializers/connection.test.js new file mode 100644 index 00000000..2a4df3c3 --- /dev/null +++ b/packages/backend/src/serializers/connection.test.js @@ -0,0 +1,28 @@ +import { describe, it, expect, beforeEach } from 'vitest'; +import { createConnection } from '../../test/factories/connection'; +import connectionSerializer from './connection'; + +describe('connectionSerializer', () => { + let connection; + + beforeEach(async () => { + connection = await createConnection(); + }); + + it('should return connection data', async () => { + const expectedPayload = { + id: connection.id, + key: connection.key, + reconnectable: connection.reconnectable, + appAuthClientId: connection.appAuthClientId, + formattedData: { + screenName: connection.formattedData.screenName, + }, + verified: connection.verified, + createdAt: connection.createdAt.getTime(), + updatedAt: connection.updatedAt.getTime(), + }; + + expect(connectionSerializer(connection)).toEqual(expectedPayload); + }); +}); diff --git a/packages/backend/src/serializers/index.js b/packages/backend/src/serializers/index.js index 795dd53b..e02e203f 100644 --- a/packages/backend/src/serializers/index.js +++ b/packages/backend/src/serializers/index.js @@ -6,6 +6,7 @@ import appAuthClientSerializer from './app-auth-client.js'; import appConfigSerializer from './app-config.js'; import flowSerializer from './flow.js'; import stepSerializer from './step.js'; +import connectionSerializer from './connection.js'; import appSerializer from './app.js'; import authSerializer from './auth.js'; import triggerSerializer from './trigger.js'; @@ -23,6 +24,7 @@ const serializers = { AppConfig: appConfigSerializer, Flow: flowSerializer, Step: stepSerializer, + Connection: connectionSerializer, App: appSerializer, Auth: authSerializer, Trigger: triggerSerializer,