diff --git a/modules/core/references/services.js b/modules/core/references/services.js new file mode 100644 index 000000000..daa7f4462 --- /dev/null +++ b/modules/core/references/services.js @@ -0,0 +1,30 @@ +'use strict' +const bcrypt = require( 'bcrypt' ) +const crs = require( 'crypto-random-string' ) +const root = require( 'app-root-path' ) +const knex = require( `${root}/db/knex` ) + +const Users = ( ) => knex( 'references' ) +const Streams = ( ) => knex( 'streams' ) + +module.exports = { + createReference: async ( streamId, reference ) => { + + }, + + getReference: async ( ) => { + + }, + + getStreamReferences: async ( ) => { + + }, + + updateReference: async ( ) => { + + }, + + deleteReference: async ( ) => { + + }, +} \ No newline at end of file diff --git a/modules/core/streams/controllers.js b/modules/core/streams/controllers.js index b9c85032f..543a5706b 100644 --- a/modules/core/streams/controllers.js +++ b/modules/core/streams/controllers.js @@ -1,6 +1,6 @@ 'use strict' -const { getStream, createStream, updateStream } = require( './queries' ) +const { getStream, createStream, updateStream } = require( './services' ) module.exports = { diff --git a/modules/core/streams/queries.js b/modules/core/streams/services.js similarity index 92% rename from modules/core/streams/queries.js rename to modules/core/streams/services.js index 46d638398..b14813f98 100644 --- a/modules/core/streams/queries.js +++ b/modules/core/streams/services.js @@ -7,6 +7,7 @@ const Streams = ( ) => knex( 'streams' ) const Acl = ( ) => knex( 'stream_acl' ) module.exports = { + createStream: async ( stream, ownerId ) => { delete stream.id delete stream.created_at @@ -22,11 +23,6 @@ module.exports = { return Streams( ).where( { id: streamId } ).first( ) }, - /** - * @param {string} The streamId you want to update - * @param {object} The stream fields you want to update - * @return {string} the id of the updated stream - */ updateStream: async ( streamId, stream ) => { delete stream.id delete stream.created_at @@ -44,8 +40,6 @@ module.exports = { let query = Acl( ).insert( { user_id: userId, stream_id: streamId, role: role } ).toString( ) + ` on conflict on constraint stream_acl_pkey do update set role=excluded.role` await knex.raw( query ) - - }, revokePermissionsStream: async ( streamId, userId ) => { diff --git a/modules/core/tests/actors.spec.js b/modules/core/tests/actors.spec.js index d1ca0e9fa..80bf264ec 100644 --- a/modules/core/tests/actors.spec.js +++ b/modules/core/tests/actors.spec.js @@ -10,7 +10,7 @@ chai.use( chaiHttp ) const knex = require( `${root}/db/knex` ) -const { createUser, getUser, updateUser, deleteUser, validatePasssword, createToken, revokeToken, revokeTokenById, validateToken, getUserTokens } = require( '../users/queries' ) +const { createUser, getUser, updateUser, deleteUser, validatePasssword, createToken, revokeToken, revokeTokenById, validateToken, getUserTokens } = require( '../users/services' ) describe( 'Actors & Tokens', ( ) => { let myTestActor = { diff --git a/modules/core/tests/streams.spec.js b/modules/core/tests/streams.spec.js index 6da1abedc..357b596e4 100644 --- a/modules/core/tests/streams.spec.js +++ b/modules/core/tests/streams.spec.js @@ -10,8 +10,8 @@ const expect = chai.expect chai.use( chaiHttp ) -const { createUser, createToken, revokeToken, revokeTokenById, validateToken, getUserTokens } = require( '../users/queries' ) -const { createStream, getStream, updateStream, deleteStream, getStreamsUser, grantPermissionsStream, revokePermissionsStream } = require( '../streams/queries' ) +const { createUser, createToken, revokeToken, revokeTokenById, validateToken, getUserTokens } = require( '../users/services' ) +const { createStream, getStream, updateStream, deleteStream, getStreamsUser, grantPermissionsStream, revokePermissionsStream } = require( '../streams/services' ) describe( 'Streams', ( ) => { @@ -46,30 +46,32 @@ describe( 'Streams', ( ) => { } ) - it( 'Should create a stream', async ( ) => { - testStream.id = await createStream( testStream, userOne.id ) - expect( testStream ).to.have.property( 'id' ) - expect( testStream.id ).to.not.be.null + describe( 'Base CRUD', ( ) => { + it( 'Should create a stream', async ( ) => { + testStream.id = await createStream( testStream, userOne.id ) + expect( testStream ).to.have.property( 'id' ) + expect( testStream.id ).to.not.be.null - secondTestStream.id = await createStream( secondTestStream, userOne.id ) - expect( secondTestStream.id ).to.not.be.null - } ) + secondTestStream.id = await createStream( secondTestStream, userOne.id ) + expect( secondTestStream.id ).to.not.be.null + } ) - it( 'Should get a stream', async ( ) => { - let stream = await getStream( testStream.id ) - expect( stream ).to.not.be.null - } ) + it( 'Should get a stream', async ( ) => { + let stream = await getStream( testStream.id ) + expect( stream ).to.not.be.null + } ) - it( 'Should update a stream', async ( ) => { - let sid = await updateStream( testStream.id, { name: "Modified Name", description: 'Wooot' } ) - let stream = await getStream( testStream.id ) - expect( stream.name ).to.equal( 'Modified Name' ) - expect( stream.description ).to.equal( 'Wooot' ) - } ) + it( 'Should update a stream', async ( ) => { + let sid = await updateStream( testStream.id, { name: "Modified Name", description: 'Wooot' } ) + let stream = await getStream( testStream.id ) + expect( stream.name ).to.equal( 'Modified Name' ) + expect( stream.description ).to.equal( 'Wooot' ) + } ) - it( 'Should get all streams for a user', async ( ) => { - let all = await getStreamsUser( userOne.id ) - expect( all ).to.have.lengthOf( 2 ) + it( 'Should get all streams for a user', async ( ) => { + let all = await getStreamsUser( userOne.id ) + expect( all ).to.have.lengthOf( 2 ) + } ) } ) describe( 'Sharing', ( ) => { @@ -127,11 +129,9 @@ describe( 'Streams', ( ) => { } ) - - } ) - describe( 'Integration', ( ) => { + describe( 'Integration (API)', ( ) => { // The express app let app = null diff --git a/modules/core/users/queries.js b/modules/core/users/services.js similarity index 100% rename from modules/core/users/queries.js rename to modules/core/users/services.js