Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
f014dc9
commit 31c7c14
Showing
11 changed files
with
367 additions
and
45 deletions.
There are no files selected for viewing
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
var path = require('path'); | ||
module.exports = { | ||
schema: [{path: path.join(__dirname, 'seed'), linkSP: true}] | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
DECLARE @itemTypeId BIGINT | ||
-- region | ||
SET @itemTypeId = (SELECT itemTypeId FROM [core].itemType WHERE name = 'region') | ||
IF @itemTypeId IS NULL | ||
BEGIN | ||
INSERT INTO [core].itemType([alias], [name], [description], [table], [keyColumn], [nameColumn]) | ||
VALUES ('region', 'region', 'region', 'region', 'regionId', 'regionId') | ||
SET @itemTypeId = SCOPE_IDENTITY() | ||
END | ||
IF NOT EXISTS (SELECT 1 FROM [core].itemName WHERE itemName = 'West' AND itemTypeId = @itemTypeId) | ||
BEGIN | ||
INSERT INTO [core].itemName([itemTypeId], [itemName], [itemCode], [itemSyncId], [organizationId], [isEnabled], [itemOrder]) | ||
VALUES (@itemTypeId, 'West', 'West', NULL, NULL, 1, NULL) | ||
END | ||
-- city | ||
SET @itemTypeId = (SELECT itemTypeId FROM [core].itemType WHERE name = 'city') | ||
IF @itemTypeId IS NULL | ||
BEGIN | ||
INSERT INTO [core].itemType([alias], [name], [description], [table], [keyColumn], [nameColumn]) | ||
VALUES ('city', 'city', 'city', 'city', 'cityId', 'cityId') | ||
SET @itemTypeId = SCOPE_IDENTITY() | ||
END | ||
IF NOT EXISTS (SELECT 1 FROM [core].itemName WHERE itemName = 'Seattle' AND itemTypeId = @itemTypeId) | ||
BEGIN | ||
INSERT INTO [core].itemName([itemTypeId], [itemName], [itemCode], [itemSyncId], [organizationId], [isEnabled], [itemOrder]) | ||
VALUES (@itemTypeId, 'Seattle', 'Seattle', NULL, NULL, 1, NULL) | ||
END | ||
IF NOT EXISTS (SELECT 1 FROM [core].itemName WHERE itemName = 'Redmond' AND itemTypeId = @itemTypeId) | ||
BEGIN | ||
INSERT INTO [core].itemName([itemTypeId], [itemName], [itemCode], [itemSyncId], [organizationId], [isEnabled], [itemOrder]) | ||
VALUES (@itemTypeId, 'Redmond', 'Redmond', NULL, NULL, 1, NULL) | ||
END | ||
IF NOT EXISTS (SELECT 1 FROM [core].itemName WHERE itemName = 'San Francisco' AND itemTypeId = @itemTypeId) | ||
BEGIN | ||
INSERT INTO [core].itemName([itemTypeId], [itemName], [itemCode], [itemSyncId], [organizationId], [isEnabled], [itemOrder]) | ||
VALUES (@itemTypeId, 'San Francisco', 'San Francisco', NULL, NULL, 1, NULL) | ||
END | ||
-- channel | ||
SET @itemTypeId = (SELECT itemTypeId FROM [core].itemType WHERE name = 'channel') | ||
IF @itemTypeId IS NULL | ||
BEGIN | ||
INSERT INTO [core].itemType([alias], [name], [description], [table], [keyColumn], [nameColumn]) | ||
VALUES ('channel', 'channel', 'channel', 'channel', 'channelId', 'channelId') | ||
SET @itemTypeId = SCOPE_IDENTITY() | ||
END | ||
IF NOT EXISTS (SELECT 1 FROM [core].itemName WHERE itemName = 'USSD / SMS' AND itemTypeId = @itemTypeId) | ||
BEGIN | ||
INSERT INTO [core].itemName([itemTypeId], [itemName], [itemCode], [itemSyncId], [organizationId], [isEnabled], [itemOrder]) | ||
VALUES (@itemTypeId, 'USSD / SMS', 'USSD / SMS', NULL, NULL, 1, NULL) | ||
END | ||
IF NOT EXISTS (SELECT 1 FROM [core].itemName WHERE itemName = 'Self service app' AND itemTypeId = @itemTypeId) | ||
BEGIN | ||
INSERT INTO [core].itemName([itemTypeId], [itemName], [itemCode], [itemSyncId], [organizationId], [isEnabled], [itemOrder]) | ||
VALUES (@itemTypeId, 'Self service app', 'Self service app', NULL, NULL, 1, NULL) | ||
END | ||
IF NOT EXISTS (SELECT 1 FROM [core].itemName WHERE itemName = 'Third Party' AND itemTypeId = @itemTypeId) | ||
BEGIN | ||
INSERT INTO [core].itemName([itemTypeId], [itemName], [itemCode], [itemSyncId], [organizationId], [isEnabled], [itemOrder]) | ||
VALUES (@itemTypeId, 'Third Party', 'Third Party', NULL, NULL, 1, NULL) | ||
END |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,138 @@ | ||
DECLARE @itemNameTranslationTT core.itemNameTranslationTT | ||
DECLARE @meta core.metaDataTT | ||
DECLARE @enLanguageId [tinyint] = (SELECT languageId FROM [core].[language] WHERE iso2Code = 'en'); | ||
|
||
INSERT INTO @itemNameTranslationTT(itemCode, itemName, itemNameTranslation) VALUES ('rule', 'Rule Management', 'Rule Management') | ||
|
||
EXEC core.[itemNameTranslation.upload] @itemNameTranslationTT = @itemNameTranslationTT, | ||
@languageId = @enLanguageId, @organizationId = NULL, @itemType = 'roleCategory', @meta = @meta | ||
|
||
DECLARE @rulesId BIGINT = (SELECT itemNameId FROM [core].[itemName] i JOIN [core].[itemType] it ON i.itemTypeId = it.itemTypeId WHERE it.[name] = 'roleCategory' AND itemCode = 'rule') | ||
|
||
DECLARE @rulesList BIGINT, @rulesAdd BIGINT, @rulesEdit BIGINT, @rulesDelete BIGINT | ||
|
||
--View Rules | ||
IF NOT EXISTS(SELECT * FROM [user].[role] WHERE name = 'List Rules') | ||
BEGIN | ||
INSERT INTO core.actor(actorType, isEnabled) VALUES('role', 1) | ||
SET @rulesList = SCOPE_IDENTITY() | ||
INSERT INTO [user].[role](actorId, name, [description], isEnabled, isDeleted, fieldOfWorkId, isSystem) | ||
VALUES(@rulesList, 'List Rules', 'List Rules', 1, 0, @rulesId, 1) | ||
END | ||
ELSE | ||
SET @rulesList = (SELECT actorId FROM [user].[role] WHERE name = 'List Rules') | ||
|
||
MERGE INTO [user].actorAction AS target | ||
USING | ||
(VALUES | ||
(@rulesList, 'rule.rule.nav', '%', 1), | ||
(@rulesList, 'customer.organization.graphFetch', '%', 1), | ||
(@rulesList, 'customer.organization.list', '%', 1), | ||
(@rulesList, 'rule.rule.fetch', '%', 1), | ||
(@rulesList, 'rule.item.fetch', '%', 1), | ||
(@rulesList, 'core.itemName.fetch', '%', 1), | ||
(@rulesList, 'core.itemCode.fetch', '%', 1), | ||
(@rulesList, 'customer.organization.fetch', '%', 1), | ||
(@rulesList, 'user.role.fetch', '%', 1), | ||
(@rulesList, 'db/rule.rule.fetch', '%', 1) | ||
) AS source (actorId, actionId, objectId, [level]) | ||
ON target.actorId = source.actorId AND target.actionId = source.actionId AND target.objectId = source.objectId AND target.[level] = source.[level] | ||
WHEN NOT MATCHED BY TARGET THEN | ||
INSERT (actorId, actionId, objectId, [level]) | ||
VALUES (actorId, actionId, objectId, [level]); | ||
|
||
--Create Rule | ||
IF NOT EXISTS(SELECT * FROM [user].[role] WHERE name = 'Create Rule') | ||
BEGIN | ||
INSERT INTO core.actor(actorType, isEnabled) VALUES('role', 1) | ||
SET @rulesAdd = SCOPE_IDENTITY() | ||
INSERT INTO [user].[role](actorId, name, [description], isEnabled, isDeleted, fieldOfWorkId, isSystem) | ||
VALUES(@rulesAdd, 'Create Rule', 'Create Rule', 1, 0, @rulesId, 1) | ||
END | ||
ELSE | ||
SET @rulesAdd = (SELECT actorId FROM [user].[role] WHERE name = 'Create Rule') | ||
|
||
MERGE INTO [user].actorAction AS target | ||
USING | ||
(VALUES | ||
(@rulesAdd, 'rule.rule.nav', '%', 1), | ||
(@rulesAdd, 'customer.organization.graphFetch', '%', 1), | ||
(@rulesAdd, 'customer.organization.list', '%', 1), | ||
(@rulesAdd, 'rule.rule.fetch', '%', 1), | ||
(@rulesAdd, 'rule.rule.add', '%', 1), | ||
(@rulesAdd, 'rule.item.fetch', '%', 1), | ||
(@rulesAdd, 'core.itemName.fetch', '%', 1), | ||
(@rulesAdd, 'core.itemCode.fetch', '%', 1), | ||
(@rulesAdd, 'customer.organization.fetch', '%', 1), | ||
(@rulesAdd, 'user.role.fetch', '%', 1), | ||
(@rulesAdd, 'db/rule.rule.fetch', '%', 1), | ||
(@rulesAdd, 'db/rule.rule.add', '%', 1) | ||
) AS source (actorId, actionId, objectId, [level]) | ||
ON target.actorId = source.actorId AND target.actionId = source.actionId AND target.objectId = source.objectId AND target.[level] = source.[level] | ||
WHEN NOT MATCHED BY TARGET THEN | ||
INSERT (actorId, actionId, objectId, [level]) | ||
VALUES (actorId, actionId, objectId, [level]); | ||
|
||
--Edit Rule | ||
IF NOT EXISTS(SELECT * FROM [user].[role] WHERE name = 'Edit Rule') | ||
BEGIN | ||
INSERT INTO core.actor(actorType, isEnabled) VALUES('role', 1) | ||
SET @rulesEdit = SCOPE_IDENTITY() | ||
INSERT INTO [user].[role](actorId, name, [description], isEnabled, isDeleted, fieldOfWorkId, isSystem) | ||
VALUES(@rulesEdit, 'Edit Rule', 'Edit Rule', 1, 0, @rulesId, 1) | ||
END | ||
ELSE | ||
SET @rulesEdit = (SELECT actorId FROM [user].[role] WHERE name = 'Edit Rule') | ||
|
||
MERGE INTO [user].actorAction AS target | ||
USING | ||
(VALUES | ||
(@rulesEdit, 'rule.rule.nav', '%', 1), | ||
(@rulesEdit, 'customer.organization.graphFetch', '%', 1), | ||
(@rulesEdit, 'customer.organization.list', '%', 1), | ||
(@rulesEdit, 'rule.rule.fetch', '%', 1), | ||
(@rulesEdit, 'rule.item.fetch', '%', 1), | ||
(@rulesEdit, 'core.itemName.fetch', '%', 1), | ||
(@rulesEdit, 'core.itemCode.fetch', '%', 1), | ||
(@rulesEdit, 'customer.organization.fetch', '%', 1), | ||
(@rulesEdit, 'user.role.fetch', '%', 1), | ||
(@rulesEdit, 'db/rule.rule.fetch', '%', 1), | ||
(@rulesEdit, 'db/rule.rule.edit', '%', 1), | ||
(@rulesEdit, 'rule.rule.edit', '%', 1) | ||
) AS source (actorId, actionId, objectId, [level]) | ||
ON target.actorId = source.actorId AND target.actionId = source.actionId AND target.objectId = source.objectId AND target.[level] = source.[level] | ||
WHEN NOT MATCHED BY TARGET THEN | ||
INSERT (actorId, actionId, objectId, [level]) | ||
VALUES (actorId, actionId, objectId, [level]); | ||
|
||
--Delete Rule | ||
IF NOT EXISTS(SELECT * FROM [user].[role] WHERE name = 'Delete Rule') | ||
BEGIN | ||
INSERT INTO core.actor(actorType, isEnabled) VALUES('role', 1) | ||
SET @rulesDelete = SCOPE_IDENTITY() | ||
INSERT INTO [user].[role](actorId, name, [description], isEnabled, isDeleted, fieldOfWorkId, isSystem) | ||
VALUES(@rulesDelete, 'Delete Rule', 'Delete Rule', 1, 0, @rulesId, 1) | ||
END | ||
ELSE | ||
SET @rulesDelete = (SELECT actorId FROM [user].[role] WHERE name = 'Delete Rule') | ||
|
||
MERGE INTO [user].actorAction AS target | ||
USING | ||
(VALUES | ||
(@rulesDelete, 'rule.rule.nav', '%', 1), | ||
(@rulesDelete, 'customer.organization.graphFetch', '%', 1), | ||
(@rulesDelete, 'customer.organization.list', '%', 1), | ||
(@rulesDelete, 'rule.rule.fetch', '%', 1), | ||
(@rulesDelete, 'rule.item.fetch', '%', 1), | ||
(@rulesDelete, 'core.itemName.fetch', '%', 1), | ||
(@rulesDelete, 'core.itemCode.fetch', '%', 1), | ||
(@rulesDelete, 'customer.organization.fetch', '%', 1), | ||
(@rulesDelete, 'user.role.fetch', '%', 1), | ||
(@rulesDelete, 'db/rule.rule.fetch', '%', 1), | ||
(@rulesDelete, 'db/rule.rule.remove', '%', 1), | ||
(@rulesDelete, 'rule.rule.remove', '%', 1) | ||
) AS source (actorId, actionId, objectId, [level]) | ||
ON target.actorId = source.actorId AND target.actionId = source.actionId AND target.objectId = source.objectId AND target.[level] = source.[level] | ||
WHEN NOT MATCHED BY TARGET THEN | ||
INSERT (actorId, actionId, objectId, [level]) | ||
VALUES (actorId, actionId, objectId, [level]); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,13 +1,36 @@ | ||
module.exports = () => ({ | ||
ports: [], | ||
modules: { | ||
rule: require('./api/script'), | ||
'db/rule': require('./api/sql') | ||
}, | ||
validations: { | ||
rule: require('./validations') | ||
}, | ||
errors: [ | ||
require('./errors') | ||
] | ||
}); | ||
module.exports = () => function utRule() { | ||
return [ | ||
function adapter() { | ||
return { | ||
modules: { | ||
'db/rule': require('./api/sql/schema'), | ||
ruleSeed: require('./api/sql/seed'), | ||
ruleTest: () => require('./test/schema') | ||
}, | ||
errors: [ | ||
require('./errors') | ||
] | ||
}; | ||
}, | ||
function orchestrator() { | ||
return { | ||
ports: [ | ||
require('ut-dispatch-db')(['rule']) | ||
], | ||
modules: { | ||
rule: require('./api/script') | ||
}, | ||
errors: [ | ||
require('./errors') | ||
] | ||
}; | ||
}, | ||
function gateway() { | ||
return { | ||
validations: { | ||
rule: require('./validations') | ||
} | ||
}; | ||
} | ||
]; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
const path = require('path'); | ||
module.exports = { | ||
schema: [{path: path.join(__dirname, 'schema'), linkSP: true}] | ||
}; |
Oops, something went wrong.