Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
110 commits
Select commit Hold shift + click to select a range
e91b13a
WhatsPro
jrrcdev Mar 14, 2020
3914bd7
ChatBot
jrrcdev Mar 14, 2020
6d2d5a1
fix
jrrcdev Mar 20, 2020
e4df1b9
Implemented user assigned isolation
jrrcdev Mar 21, 2020
c7676b8
Merged PR 303: Implemented user assigned isolation
jrrcdev Mar 21, 2020
97e0001
Chatbot
jrrcdev Mar 26, 2020
2043339
Merge pull request #2 from erxes/develop
jrrcdev Apr 4, 2020
41ff583
Merge branch 'WhatsPro' into develop
jrrcdev Apr 4, 2020
f60edc2
Merge pull request #3 from Loop3/develop
jrrcdev Apr 4, 2020
9f339a7
Merge branch 'ChatBot' into WhatsPro
jrrcdev Apr 4, 2020
6774e86
Merge pull request #4 from Loop3/WhatsPro
jrrcdev Apr 4, 2020
5a0c6b7
Merge branch 'ChatBot' of https://github.com/loop3/erxes-api into Cha…
jrrcdev Apr 4, 2020
e408dce
fix issue when no file type is specified
jrrcdev Apr 4, 2020
67a0679
Merge pull request #5 from Loop3/noFileTypeIssue
jrrcdev Apr 4, 2020
d9b662d
Merge pull request #6 from Loop3/develop
jrrcdev Apr 4, 2020
3e182c5
Merge pull request #7 from Loop3/WhatsPro
jrrcdev Apr 4, 2020
7a754fa
Merge branch 'ChatBot' of https://github.com/loop3/erxes-api into Cha…
jrrcdev Apr 4, 2020
80300ca
add vcard message type
jrrcdev Apr 5, 2020
f5e8b8a
Merge branch 'WhatsPro' of https://github.com/loop3/erxes-api into Wh…
jrrcdev Apr 5, 2020
4cbf394
Merged PR 317: vcard
jrrcdev Apr 5, 2020
43b95b7
ignore old msgs and group message on flow
jrrcdev Apr 10, 2020
2a7ffca
improved reset flow
jrrcdev Apr 10, 2020
f2c5a1b
Fix send multiple messages issue
jrrcdev Apr 15, 2020
d2c9f8e
Last seen
jrrcdev Apr 17, 2020
af76b10
improved flow
jrrcdev Apr 17, 2020
7e5f861
fix brand issue
jrrcdev Apr 22, 2020
d6e829d
add condition on onboarding active
jrrcdev May 3, 2020
c60f3c1
fix utc time
jrrcdev May 4, 2020
bb77c61
fix elk index lowercase
jrrcdev May 5, 2020
6c231bf
fix elk issue lowercase
jrrcdev May 5, 2020
e1564ea
refactor
jrrcdev May 7, 2020
6632738
Merge pull request #9 from erxes/develop
jrrcdev May 7, 2020
4d24358
fix
jrrcdev May 7, 2020
43e929d
Merge branch 'WhatsPro' into develop
jrrcdev May 7, 2020
cafe5a7
Merge pull request #10 from Loop3/develop
jrrcdev May 7, 2020
cc3d1bf
Merge branch 'ChatBot' into WhatsPro
jrrcdev May 7, 2020
1688a44
Merge pull request #11 from Loop3/WhatsPro
jrrcdev May 7, 2020
3c9d7ed
Add WhatsPro Integration Name
jrrcdev May 7, 2020
c616586
Merge branch 'WhatsPro' of https://github.com/loop3/erxes-api into Wh…
jrrcdev May 7, 2020
edd3d77
Merge pull request #12 from Loop3/WhatsPro
jrrcdev May 7, 2020
81fb4ed
add createdDate to elksync
jrrcdev May 12, 2020
a360594
change searchText query to search docs that contains the value
jrrcdev May 14, 2020
dd25ebf
improved scopeBrandIds elk query
jrrcdev May 14, 2020
456e240
fix get last activitylogs conversations
jrrcdev May 19, 2020
67646f5
Implementing whatsapp status
jrrcdev May 20, 2020
86ea3ab
status message
jrrcdev May 22, 2020
6565681
Merged PR 373: update chatbot
jrrcdev May 25, 2020
df21987
Merged PR 405: update whatspro
jrrcdev Jun 26, 2020
c16f618
update message status
jrrcdev Jun 26, 2020
d278bb3
update avatar from whatspro
jrrcdev Jun 27, 2020
0b65568
add redis db option
jrrcdev Jul 3, 2020
a09573c
Merge branch 'develop' into use-it-for-update
jrrcdev Jul 18, 2020
d4f1994
Merge pull request #13 from Loop3/use-it-for-update
jrrcdev Jul 18, 2020
46667a9
add isOwer to default admin user
jrrcdev Jul 18, 2020
4aa7f0a
Merge remote-tracking branch 'origin/WhatsPro' into develop
jrrcdev Jul 18, 2020
219eef8
Merge pull request #14 from Loop3/develop
jrrcdev Jul 18, 2020
4de2983
fix duplicate user declaration
jrrcdev Jul 19, 2020
8cecea9
fix issue
jrrcdev Jul 19, 2020
1d89edc
release
jrrcdev Jul 22, 2020
83153a9
release
jrrcdev Jul 22, 2020
4709b84
fix and improve flow
jrrcdev Jul 23, 2020
1da8baf
Merged PR 438: fix and improve flow
jrrcdev Jul 23, 2020
bd21c8e
Merge branch 'develop' into 20201024
jrrcdev Oct 24, 2020
b22c7f8
add redis db number
jrrcdev Oct 24, 2020
d545696
Merge pull request #15 from Loop3/20201024
jrrcdev Oct 24, 2020
741a162
update env.sample
jrrcdev Oct 24, 2020
1442e9c
fix merge issue
jrrcdev Oct 24, 2020
613a201
Merge pull request #16 from Loop3/develop
jrrcdev Oct 24, 2020
3fbe5f6
fixes
jrrcdev Oct 24, 2020
b4dc44d
Merge pull request #17 from Loop3/develop
jrrcdev Oct 24, 2020
26c8bf0
Merge branch 'develop' of https://github.com/Loop3/erxes-api into Wha…
jrrcdev Oct 24, 2020
7f1fe36
Merge branch 'release' into WhatsPro
jrrcdev Oct 25, 2020
dc4ae58
Merge pull request #18 from Loop3/WhatsPro
jrrcdev Oct 25, 2020
cf619a7
remove unused variable
jrrcdev Nov 22, 2020
2a141d6
Merge pull request #19 from Loop3/WhatsPro
jrrcdev Nov 22, 2020
62dafed
fix hostname issue
jrrcdev Nov 22, 2020
f689cdf
implementing on my external message
jrrcdev Dec 18, 2020
1ea12e8
implemented external message
jrrcdev Dec 18, 2020
fff5977
Merge pull request #21 from Loop3/on-my-external-message
jrrcdev Jan 10, 2021
d5f0b30
Merge pull request #22 from Loop3/dev
jrrcdev Jan 10, 2021
9e93aed
improved update message
jrrcdev Jan 15, 2021
8729435
removed assign conversation to user
jrrcdev Feb 6, 2021
f5e2dd3
Merge pull request #23 from Loop3/stage
jrrcdev Feb 6, 2021
fd5cc90
improved bot
jrrcdev Feb 11, 2021
e5c40fa
add image to bot condition check
jrrcdev Feb 12, 2021
d24dce9
implementing executeNext on flow actions
jrrcdev Mar 18, 2021
f7f0dce
add timeout on send next message
jrrcdev Mar 18, 2021
33be9ae
implemented send file message on bot
jrrcdev May 21, 2021
0afcba5
add RETURN_CHAT_TO_BOT_AFTER
jrrcdev May 21, 2021
4fac8f4
fix assign to not actived user issue
jrrcdev May 28, 2021
3f92d04
fix remove assignedUser issue
jrrcdev May 28, 2021
dd98cc8
fix reassign issue
jrrcdev May 28, 2021
7fb7a03
filter actived users
jrrcdev Jun 10, 2021
a8d6904
update flow action on create if existis
jrrcdev Dec 9, 2021
11805dd
implemented transfer to specific agent
jrrcdev Apr 19, 2022
59c296d
add gitignore
jrrcdev May 18, 2022
8383417
get last conversation for customer and integration
jrrcdev May 27, 2022
39fab94
implemented conversationAdd
jrrcdev May 27, 2022
5b07569
add flow action erxes.action.define.owner
jrrcdev May 29, 2022
821ef0f
Merge branch 'send-whatspro-message' into dev
jrrcdev May 29, 2022
be44a6a
USE_CUSTOMER_RESTRICTIONS
jrrcdev May 30, 2022
7e9196d
save button, list and response message
jrrcdev Jun 4, 2022
fab5546
add support to send list and buttons on flow
jrrcdev Jun 4, 2022
83508ca
handle flow condition based on response
jrrcdev Jun 4, 2022
1ba33bb
fix status type
jrrcdev Jun 4, 2022
158b143
add buttons and list to flow condition
jrrcdev Jun 4, 2022
7ef49b3
add dist and no_modules to dockerignore
jrrcdev Jun 6, 2022
6970fde
fix: Cannot read property 'concat' of undefined
jrrcdev Aug 16, 2022
46a46c6
add curl to docker image
jrrcdev Aug 30, 2022
87d5177
implemented ibm watson flow connection
jrrcdev Oct 22, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
*.md
*.yml
*.yaml
.env*
.git*
.prettierrc
.snyk
Dockerfile*
google_cred.json.sample
scripts
*.tar.gz
automations
elkSyncer
email-verifier
logger
engages-email-sender
dashboard
dist
node_modules
1 change: 1 addition & 0 deletions .env.sample
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ MONGO_URL=mongodb://localhost/erxes
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=
REDIS_DB=

# RabbitMQ
RABBITMQ_HOST=amqp://localhost
Expand Down
18 changes: 18 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Launch Program",
"program": "${workspaceFolder}/dist/index.js",
"request": "launch",
"skipFiles": ["<node_internals>/**"],
"type": "pwa-node",
"preLaunchTask": "tsc: build - tsconfig.json",
"envFile": "${workspaceRoot}/.env",
"outFiles": ["${workspaceFolder}/dist/**/*.js"]
}
]
}
29 changes: 29 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
FROM node:12.16.3-slim

ARG DEBIAN_FRONTEND=noninteractive

RUN apt-get update && \
apt-get install -y gnupg2 && \
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 && \
echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/3.6 main" | tee /etc/apt/sources.list.d/mongodb-org-3.6.list

RUN apt-get update && \
apt-get install -y \
rsync python build-essential mongodb-org-shell mongodb-org-tools git nano curl && \
rm -rf /var/lib/apt/lists/*

WORKDIR /erxes-api/

COPY --chown=node:node . /erxes-api

RUN chown -R node:node /erxes-api

USER node

RUN yarn

RUN yarn build

EXPOSE 3300

ENTRYPOINT [ "node", "--max_old_space_size=8192", "dist" ]
8 changes: 7 additions & 1 deletion elkSyncer/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@
}

customer_mapping = {
'createdAt': {
'type': 'date',
},
'state': {
'type': 'keyword',
},
Expand Down Expand Up @@ -71,6 +74,9 @@
}

company_mapping = {
'createdAt': {
'type': 'date',
},
'primaryEmail': {
'type': 'text',
'analyzer': 'uax_url_email_analyzer',
Expand Down Expand Up @@ -153,7 +159,7 @@ def put_mappings(index, mapping):
print(e)


db_name = pymongo.uri_parser.parse_uri(MONGO_URL)['database']
db_name = pymongo.uri_parser.parse_uri(MONGO_URL)['database'].lower()

put_mappings('%s__customers' % db_name, customer_mapping)
put_mappings('%s__companies' % db_name, company_mapping)
Expand Down
3 changes: 3 additions & 0 deletions email-verifier/src/redisClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,13 @@ const {
REDIS_PORT = 6379,
REDIS_PASSWORD,
NODE_ENV,
REDIS_DB,
}: {
REDIS_HOST?: string;
REDIS_PORT?: number;
REDIS_PASSWORD?: string;
NODE_ENV?: string;
REDIS_DB?: number;
} = process.env;

let client;
Expand All @@ -23,6 +25,7 @@ export const initRedis = (callback?: (client) => void) => {
host: REDIS_HOST,
port: REDIS_PORT,
password: REDIS_PASSWORD,
db: REDIS_DB,
connect_timeout: 15000,
enable_offline_queue: true,
retry_unfulfilled_commands: true,
Expand Down
2 changes: 1 addition & 1 deletion engages-email-sender/.dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
*.yml
.dockerignore
.git*
.env*
.prettierrc
Dockerfile*
src
*.tar.gz
14 changes: 13 additions & 1 deletion engages-email-sender/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,19 @@
FROM node:12.18-slim

RUN apt-get update && \
apt-get install -y \
nano curl

WORKDIR /erxes-engages
RUN chown -R node:node /erxes-engages
COPY --chown=node:node . /erxes-engages

USER node

RUN yarn

RUN yarn build

EXPOSE 3900
ENTRYPOINT ["node", "--max_old_space_size=8192", "--experimental-worker", "dist"]

ENTRYPOINT [ "node", "--max_old_space_size=8192", "dist" ]
12 changes: 12 additions & 0 deletions logger/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,19 @@
FROM node:12.18-slim

RUN apt-get update && \
apt-get install -y \
nano curl

WORKDIR /erxes-logger/
RUN chown -R node:node /erxes-logger
COPY --chown=node:node . /erxes-logger

USER node

RUN yarn

RUN yarn build

EXPOSE 3800

ENTRYPOINT [ "node", "--max_old_space_size=8192", "dist" ]
8 changes: 6 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
"test": "node --expose-gc --max_old_space_size=4000 ./node_modules/.bin/jest --forceExit --silent --logHeapUsage",
"loadInitialData": "ts-node ./src/commands/loadInitialData.ts",
"loadPermission": "ts-node ./src/commands/loadPermissionData.ts",
"loadEsData": "ts-node --transpile-only ./src/commands/loadEsData.ts",
"loadGrowthHackData": "ts-node ./src/commands/loadGrowthHackData.ts",
"loadTestData": "ts-node ./src/commands/loadTestData.ts",
"initProject": "ts-node ./src/commands/initProject.ts",
Expand All @@ -37,6 +38,7 @@
"runEsCommand": "ts-node ./src/commands/runEsCommand.ts",
"trackTelemetry": "node ./dist/commands/trackTelemetry.js",
"migrate": "NODE_ENV=command migrate --migrations-dir='./dist/migrations' --store='./db-migrate-store.js' up",
"migrate-win": "set NODE_ENV=command migrate --migrations-dir='./dist/migrations' --store='./db-migrate-store.js' up",
"release": "release-it"
},
"lint-staged": {
Expand Down Expand Up @@ -89,10 +91,13 @@
"graphql-tools": "^4.0.3",
"handlebars": "^4.7.3",
"helmet": "^3.23.3",
"ibm-watson": "^7.1.1",
"ioredis": "^3.2.2",
"json2csv": "^5.0.1",
"jsonwebtoken": "^8.1.0",
"libphonenumber-js": "^1.9.10",
"meteor-random": "^0.0.3",
"migrate": "^1.6.2",
"moment": "^2.18.1",
"moment-timezone": "^0.5.31",
"mongo-uri": "^0.1.2",
Expand All @@ -114,8 +119,7 @@
"vm2": "^3.9.2",
"xlsx-populate": "^1.20.1",
"xlsx-stream-reader": "^1.1.0",
"xss": "^1.0.6",
"migrate": "^1.6.2"
"xss": "^1.0.6"
},
"peerOptionalDependencies": {
"kerberos": "^1.0.0"
Expand Down
8 changes: 4 additions & 4 deletions src/__tests__/knowledgeBaseDb.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ describe('test knowledge base models', () => {
_id: topicB._id.toString(),
});

if (!topicAObj || !topicAObj.categoryIds || (!topicBObj || !topicBObj.categoryIds)) {
if (!topicAObj || !topicAObj.categoryIds || !topicBObj || !topicBObj.categoryIds) {
throw new Error('Topic not found');
}

Expand Down Expand Up @@ -277,7 +277,7 @@ describe('test knowledge base models', () => {
_id: topicB._id.toString(),
});

if (!topicAObj || !topicAObj.categoryIds || (!topicBObj || !topicBObj.categoryIds)) {
if (!topicAObj || !topicAObj.categoryIds || !topicBObj || !topicBObj.categoryIds) {
throw new Error('Topic not found');
}

Expand Down Expand Up @@ -395,7 +395,7 @@ describe('test knowledge base models', () => {
_id: categoryB._id.toString(),
});

if (!categoryAObj || !categoryAObj.articleIds || (!categoryBObj || !categoryBObj.articleIds)) {
if (!categoryAObj || !categoryAObj.articleIds || !categoryBObj || !categoryBObj.articleIds) {
throw new Error('Topic not found');
}

Expand Down Expand Up @@ -449,7 +449,7 @@ describe('test knowledge base models', () => {
_id: categoryB._id.toString(),
});

if (!categoryAObj || !categoryAObj.articleIds || (!categoryBObj || !categoryBObj.articleIds)) {
if (!categoryAObj || !categoryAObj.articleIds || !categoryBObj || !categoryBObj.articleIds) {
throw new Error('Topic not found');
}

Expand Down
5 changes: 4 additions & 1 deletion src/__tests__/pipelineTemplateDb.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,10 @@ describe('Test pipeline template model', () => {

// Creating test data
const template = await pipelineTemplateFactory({
stages: [{ name: 'stage 1', formId: form1._id }, { name: 'stage 2', formId: form2._id }],
stages: [
{ name: 'stage 1', formId: form1._id },
{ name: 'stage 2', formId: form2._id },
],
});

const duplicated = await PipelineTemplates.duplicatePipelineTemplate(template._id);
Expand Down
5 changes: 4 additions & 1 deletion src/__tests__/pipelineTemplateMutations.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,10 @@ describe('PipelineTemplates mutations', () => {

// Creating test data
const template = await pipelineTemplateFactory({
stages: [{ name: 'stage 1', formId: form1._id }, { name: 'stage 2', formId: form2._id }],
stages: [
{ name: 'stage 1', formId: form1._id },
{ name: 'stage 2', formId: form2._id },
],
});

const duplicated = await graphqlRequest(mutation, 'pipelineTemplatesDuplicate', { _id: template._id });
Expand Down
41 changes: 38 additions & 3 deletions src/apolloClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,15 @@ const apolloServer = new ApolloServer({
cookies: req.cookies,
};

if (user) {
Users.update(
{ _id: user._id },
{
lastSeenAt: new Date(),
},
).exec();
}

if (USE_BRAND_RESTRICTIONS !== 'true') {
return {
brandIdSelector: {},
Expand Down Expand Up @@ -90,10 +99,33 @@ const apolloServer = new ApolloServer({
scopeBrandIds = brandIds;
}

if (!user.isOwner) {
if (!user.isOwner && scopeBrandIds.length) {
// Select non-existent or empty arrays too
scopeBrandIds.push(null);
scopeBrandIds.push([]);

brandIdSelector = { _id: { $in: scopeBrandIds } };
commonQuerySelector = { scopeBrandIds: { $in: scopeBrandIds } };
commonQuerySelectorElk = { terms: { scopeBrandIds } };
commonQuerySelectorElk = {
bool: {
should: [
{
terms: {
scopeBrandIds: scopeBrandIds.filter(c => typeof c === 'string'),
},
},
{
bool: {
must_not: {
exists: {
field: 'scopeBrandIds',
},
},
},
},
],
},
};
userBrandIdsSelector = { brandIds: { $in: scopeBrandIds } };
singleBrandIdSelector = { brandId: { $in: scopeBrandIds } };
}
Expand All @@ -102,7 +134,10 @@ const apolloServer = new ApolloServer({
return {
brandIdSelector,
singleBrandIdSelector,
docModifier: doc => ({ ...doc, scopeBrandIds }),
docModifier: doc => ({
...doc,
scopeBrandIds: scopeBrandIds.filter((c: any) => c?.length),
}),
commonQuerySelector,
commonQuerySelectorElk,
userBrandIdsSelector,
Expand Down
54 changes: 54 additions & 0 deletions src/commands/initFlow.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
import { connect, disconnect } from '../db/connection';
import { FlowActionTypes } from '../db/models';

connect()
.then(async () => {
let flowActionTypes = await FlowActionTypes.find({});

if (!flowActionTypes || !flowActionTypes.length) {
flowActionTypes = [
'erxes.action.root',
'erxes.action.define.department',
'erxes.action.define.tabulation',
'erxes.action.transfer.to.agent',
'erxes.action.put.in.queue',
'erxes.action.finish.attendance',
'erxes.action.auto.distribute',
'erxes.action.define.bot',
'erxes.action.define.tags',
'erxes.action.add.tags',
'erxes.action.send.message',
'erxes.action.send.template.message',
'erxes.action.dispatch.to.app',
'erxes.action.send.sms',
'erxes.action.define.timeout',
'erxes.action.send.internal.message',
'erxes.action.execute.automation.flow',
'erxes.action.execute.action',
'erxes.action.conditional',
'erxes.action.wait.for.interaction',
'erxes.action.define.workflow',
'erxes.action.send.feedback',
'erxes.action.add.comment.timeline',
'erxes.action.choose.department',
'erxes.action.to.ask',
'erxes.action.send.request',
'erxes.action.send.email',
'erxes.action.send.file',
'erxes.action.execute.javascript',
'erxes.action.define.virtual.agent',
'erxes.action.define.owner',
'erxes.action.pause',
].map(type => new FlowActionTypes({ type, createdAt: new Date() }));

return FlowActionTypes.insertMany(flowActionTypes);
}
})

.then(() => {
return disconnect();
})

.then(() => {
process.exit();
});
Loading