Skip to content

Commit 85b0ff0

Browse files
author
Parth Shah
committed
Merge branch 'release/v1.3.1'
2 parents 3c55d2f + 204778a commit 85b0ff0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+5821
-4211
lines changed

.eslintignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
config/local.js
2+
config/sample.local.js
3+
node_modules
4+
dist
5+
.ebextensions
6+
.elasticbeanstalk
7+
coverage

.eslintrc

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
{
2+
"extends": "airbnb-base",
3+
"parser": "babel-eslint",
4+
"env": {
5+
"browser": false,
6+
"node": true,
7+
"es6": true,
8+
"mocha": true
9+
},
10+
"rules": {
11+
"import/no-extraneous-dependencies": ["error", {"devDependencies": ["**/*.test.js", "**/*.spec.js", "**/serviceMocks.js"]}],
12+
"max-len": ["error", { "ignoreComments": true, "code": 120 }],
13+
"valid-jsdoc": ["error", {
14+
"requireReturn": true,
15+
"requireReturnType": true,
16+
"requireParamDescription": true,
17+
"requireReturnDescription": true
18+
}],
19+
"require-jsdoc": ["error", {
20+
"require": {
21+
"FunctionDeclaration": true,
22+
"MethodDefinition": true,
23+
"ClassDeclaration": true
24+
}
25+
}]
26+
}
27+
}

README.md

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ Microservice to manage CRUD operations for all things Projects.
44

55
### Local Development
66
* We use docker-compose for running dependencies locally. Instructions for Docker compose setup - https://docs.docker.com/compose/install/
7-
* Nodejs 5.10.1 - consider using [nvm](https://github.com/creationix/nvm) or equivalent to manage your node version
7+
* Nodejs 6.9.4 - consider using [nvm](https://github.com/creationix/nvm) or equivalent to manage your node version
88
* Install [libpg](https://www.npmjs.com/package/pg-native)
99
* Install node dependencies
10-
`npm install | ./node_modules/.bin/bunyan`
10+
`npm install`
1111

1212
* Start local services
1313
```~/Projects/tc-projects-service
@@ -21,8 +21,7 @@ Copy config/sample.local.js as config/local.js, update the properties and accord
2121
Once you start your PostgreSQL database through docker, it will create a projectsDB.
2222
*To create tables - note this will drop tables if they already exist*
2323
```
24-
npm run -s build
25-
> NODE_ENV=development node -e "require('./dist/models').default.sequelize.sync({force: true}).then((res)=> console.log('Success: ', res)).catch((err)=> console.log('Failed: ', err));"
24+
NODE_ENV=local npm run sync
2625
```
2726

2827
#### Redis
@@ -51,5 +50,5 @@ You may replace 172.17.0.1 with your docker0 IP.
5150

5251
You can paste **swagger.yaml** to [swagger editor](http://editor.swagger.io/) or import **postman.json** to verify endpoints.
5352

54-
### Deployment
55-
Using awsebcli - http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-install.html
53+
#### Deploying without docker
54+
If you don't want to use docker to deploy to localhost. You can simply run `npm run start` from root of project. This should start the server on default port `3000`.

config/sample.local.js

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,34 @@
11
// force using test.json for unit tests
22

3-
var config
3+
let config;
44
if (process.env.NODE_ENV === 'test') {
5-
config = require('./test.json')
5+
config = require('./test.json');
66
} else {
77
config = {
8-
"authSecret": "secret",
9-
"logLevel": "debug",
10-
"captureLogs": "false",
11-
"logentriesToken": "",
12-
"rabbitmqURL": "amqp://dockerhost:5672",
13-
"fileServiceEndpoint": "https://api.topcoder-dev.com/v3/files/",
14-
"topicServiceEndpoint": "https://api.topcoder-dev.com/v4/topics/",
15-
"directProjectServiceEndpoint": "https://api.topcoder-dev.com/v3/direct",
16-
"userServiceUrl": "https://api.topcoder-dev.com/v3/users",
17-
"connectProjectsUrl": "https://connect.topcoder-dev.com/projects/",
18-
"salesforceLead" : {
19-
"webToLeadUrl": 'https://www.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8',
20-
"orgId": "00D2C0000000dO6",
21-
"projectNameFieldId": "title",
22-
"projectDescFieldId": "description",
23-
"projectLinkFieldId": "URL",
24-
"projectIdFieldId" : "00N2C000000Vxxx"
25-
},
26-
"dbConfig": {
27-
"masterUrl": "postgres://coder:mysecretpassword@dockerhost:5432/projectsdb",
28-
"maxPoolSize": 50,
29-
"minPoolSize": 4,
30-
"idleTimeout": 1000
31-
}
32-
}
8+
authSecret: 'secret',
9+
logLevel: 'debug',
10+
captureLogs: 'false',
11+
logentriesToken: '',
12+
rabbitmqURL: 'amqp://dockerhost:5672',
13+
fileServiceEndpoint: 'https://api.topcoder-dev.com/v3/files/',
14+
topicServiceEndpoint: 'https://api.topcoder-dev.com/v4/topics/',
15+
directProjectServiceEndpoint: 'https://api.topcoder-dev.com/v3/direct',
16+
userServiceUrl: 'https://api.topcoder-dev.com/v3/users',
17+
connectProjectsUrl: 'https://connect.topcoder-dev.com/projects/',
18+
salesforceLead: {
19+
webToLeadUrl: 'https://www.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8',
20+
orgId: '00D2C0000000dO6',
21+
projectNameFieldId: 'title',
22+
projectDescFieldId: 'description',
23+
projectLinkFieldId: 'URL',
24+
projectIdFieldId: '00N2C000000Vxxx',
25+
},
26+
dbConfig: {
27+
masterUrl: 'postgres://coder:mysecretpassword@dockerhost:5432/projectsdb',
28+
maxPoolSize: 50,
29+
minPoolSize: 4,
30+
idleTimeout: 1000,
31+
},
32+
};
3333
}
34-
module.exports = config
34+
module.exports = config;

local/docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
postgres:
2-
image: "postgres:9.4"
2+
image: "postgres:9.5"
33
ports:
44
- "5432:5432"
55
environment:

migrations/sync.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
2+
3+
/* eslint-disable no-console */
4+
/**
5+
* Sync the database models to db tables.
6+
*/
7+
8+
/**
9+
* Make sure we are in development mode
10+
* @type {String}
11+
*/
12+
// process.env.NODE_ENV = 'development'
13+
14+
require('../src/models').default.sequelize.sync({ force: true })
15+
.then(() => {
16+
console.log('Database synced successfully');
17+
process.exit();
18+
}).catch((err) => {
19+
console.error('Error syncing database', err);
20+
process.exit(1);
21+
});

newrelic.js

Lines changed: 0 additions & 35 deletions
This file was deleted.

package.json

Lines changed: 13 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,22 @@
11
{
22
"name": "tc-projects-service",
3-
"version": "1.3.0",
3+
"version": "1.3.1",
44
"description": "Projects microservice",
55
"main": "index.js",
66
"engines": {
77
"node": ">=6.9"
88
},
99
"scripts": {
10-
"test": "NODE_ENV=test ./node_modules/.bin/istanbul cover ./node_modules/mocha/bin/_mocha -- --compilers js:babel-core/register $(find src -path '*spec.js*')",
11-
"live-test": "NODE_ENV=test ./node_modules/.bin/mocha -w --compilers js:babel-core/register $(find src -path '*spec.js*')",
12-
"dev": "NODE_ENV=local PORT=8001 nodemon -w src --exec \"babel-node src --presets es2015\" | ./node_modules/.bin/bunyan",
10+
"lint": "./node_modules/.bin/eslint .",
11+
"lint:fix": "./node_modules/.bin/eslint . --fix || true",
1312
"build": "babel src -d dist --presets es2015",
14-
"start": "node dist",
13+
"sync": "node migrations/sync.js",
1514
"prestart": "npm run -s build",
16-
"seed": "babel-node src/tests/seed.js --presets es2015",
17-
"direct": "babel-node src/mocks/direct.js --presets es2015",
18-
"lint": "./node_modules/.bin/eslint src"
15+
"start": "node dist",
16+
"start:dev": "NODE_ENV=local PORT=8001 nodemon -w src --exec \"babel-node src --presets es2015\" | ./node_modules/.bin/bunyan",
17+
"test": "npm run lint && NODE_ENV=test ./node_modules/.bin/istanbul cover ./node_modules/mocha/bin/_mocha -- --compilers js:babel-core/register $(find src -path '*spec.js*')",
18+
"test:watch": "NODE_ENV=test ./node_modules/.bin/mocha -w --compilers js:babel-core/register $(find src -path '*spec.js*')",
19+
"seed": "babel-node src/tests/seed.js --presets es2015"
1920
},
2021
"repository": {
2122
"type": "git",
@@ -27,25 +28,6 @@
2728
"url": "https://github.com/appirio-tech/tc-projects-service/issues"
2829
},
2930
"homepage": "https://github.com/appirio-tech/tc-projects-service#readme",
30-
"eslintConfig": {
31-
"plugins": [],
32-
"extends": "eslint:recommended",
33-
"parserOptions": {
34-
"ecmaVersion": 7,
35-
"sourceType": "module"
36-
},
37-
"env": {
38-
"node": true,
39-
"mocha": true
40-
},
41-
"globals": {
42-
"Promise": true
43-
},
44-
"rules": {
45-
"no-console": 0,
46-
"no-unused-vars": 1
47-
}
48-
},
4931
"dependencies": {
5032
"amqplib": "^0.5.1",
5133
"analytics-node": "^2.1.1",
@@ -61,7 +43,6 @@
6143
"express-validation": "^0.6.0",
6244
"joi": "^8.0.5",
6345
"lodash": "^4.16.4",
64-
"newrelic": "^1.27.2",
6546
"pg": "^4.5.5",
6647
"pg-native": "^1.10.0",
6748
"sequelize": "^3.23.0",
@@ -70,12 +51,14 @@
7051
"devDependencies": {
7152
"babel-cli": "^6.9.0",
7253
"babel-core": "^6.11.4",
54+
"babel-eslint": "^7.1.1",
7355
"babel-plugin-add-module-exports": "^0.2.1",
7456
"babel-preset-es2015": "^6.9.0",
7557
"bunyan": "^1.8.1",
7658
"chai": "^3.5.0",
77-
"eslint": "^3.2.2",
78-
"eslint-plugin-import": "^1.12.0",
59+
"eslint": "^3.16.1",
60+
"eslint-config-airbnb-base": "^11.1.0",
61+
"eslint-plugin-import": "^2.2.0",
7962
"istanbul": "^1.0.0-alpha.2",
8063
"mocha": "^2.5.3",
8164
"nodemon": "^1.9.1",

0 commit comments

Comments
 (0)