11const feathersKnex = require ( 'feathers-knex' )
22const { iff } = require ( 'feathers-hooks-common' )
3- import { pipe , equals , length , isNil } from 'ramda'
3+ import { pipe , equals , length , isNil , isEmpty } from 'ramda'
44import * as taskRecipes from '../../tasks/data/recipes'
55
66module . exports = function ( ) {
@@ -18,7 +18,8 @@ const hooks = {
1818 before : {
1919 create : [
2020 iff ( hasNoGroupAgent , createGroupAgent ) ,
21- iff ( hasNoSupplierAgent , createSupplierAgent )
21+ iff ( hasNoSupplierAgent , createSupplierAgent ) ,
22+ iff ( hasNoRelation , createRelation )
2223 ]
2324 } ,
2425 after : {
@@ -42,6 +43,27 @@ function hasNoGroupAgent (hook) {
4243 return isNil ( hook . data . consumerAgentId )
4344}
4445
46+ function hasNoRelation ( hook ) {
47+ const relationships = hook . app . service ( 'relationships' )
48+ const supplierAgentId = hook . data . supplierAgentId
49+ return relationships . find ( { query : { sourceId : supplierAgentId } } ) . then ( ( relationship ) => {
50+ return isEmpty ( relationship )
51+ } )
52+ }
53+
54+ function createRelation ( hook ) {
55+ const relationships = hook . app . service ( 'relationships' )
56+ const consumerAgentId = hook . data . consumerAgentId
57+ const supplierAgentId = hook . data . supplierAgentId
58+ return relationships . create ( {
59+ relationshipType : 'supplier' ,
60+ sourceId : consumerAgentId ,
61+ targetId : supplierAgentId
62+ } ) . then ( ( ) => {
63+ return hook
64+ } )
65+ }
66+
4567const hasLengthOne = pipe ( length , equals ( 1 ) )
4668
4769function hasOneOrder ( hook ) {
0 commit comments