Open oshihirii opened 2 years ago
Update:
I don't know if this is the correct thing to do or not.
In package.json
I added SET
before NODE_ENV
and &&
after the environment setting.
I.e. I replaced this:
"scripts": {
"start": "NODE_ENV=production nodemon -e js,pug ./bin/www",
"test": "NODE_ENV=sandbox nodemon -e js,pug ./bin/www",
"seed": "NODE_ENV=sandbox node ./bin/script/seed-data.js generate",
"clear": "NODE_ENV=sandbox node ./bin/script/seed-data.js clear",
"help": "NODE_ENV=sandbox node ./bin/script/seed-data.js --help"
}
with this:
"scripts": {
"start": "SET NODE_ENV=production&& nodemon -e js,pug ./bin/www",
"test": "SET NODE_ENV=sandbox&& nodemon -e js,pug ./bin/www",
"seed": "SET NODE_ENV=sandbox&& node ./bin/script/seed-data.js generate",
"clear": "SET NODE_ENV=sandbox&& node ./bin/script/seed-data.js clear",
"help": "SET NODE_ENV=sandbox&& node ./bin/script/seed-data.js --help"
}
And then run:
npm test
And nodemon starts:
[nodemon] 2.0.7
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,pug
[nodemon] starting `node ./bin/www`
Listening on http://localhost:3000
When I go to page in browser, I get error:
No valid customer retreived, this example only works with customers that have email information.
Error: No valid customer retreived, this example only works with customers that have email information.
at D:\REPOS\connect-api-examples\connect-examples\v2\node_subscription\routes\index.js:56:13
at processTicksAndRejections (internal/process/task_queues.js:95:5)
I looked at step 6 in the README which says:
[Optional] We provide a script you can use to quickly populate your sandbox store's subscription plans and customers with card on file. Run the script, wait for 30 seconds and refresh the page:
And ran:
$ npm run seed
Which returned:
> square-subscription-api-sample-app@1.0.0 seed D:\REPOS\connect-api-examples\connect-examples\v2\node_subscription
> SET NODE_ENV=sandbox&& node ./bin/script/seed-data.js generate
Create customers failed: ApiError: Response status code was not ok: 400.
at D:\REPOS\connect-api-examples\connect-examples\v2\node_subscription\node_modules\@apimatic\core\lib\http\requestBuilder.js:360:23
at DefaultRequestBuilder.<anonymous> (D:\REPOS\connect-api-examples\connect-examples\v2\node_subscription\node_modules\@apimatic\core\lib\http\requestBuilder.js:172:50)
at step (D:\REPOS\connect-api-examples\connect-examples\v2\node_subscription\node_modules\@apimatic\core\node_modules\tslib\tslib.js:143:27)
at Object.next (D:\REPOS\connect-api-examples\connect-examples\v2\node_subscription\node_modules\@apimatic\core\node_modules\tslib\tslib.js:124:57)
at fulfilled (D:\REPOS\connect-api-examples\connect-examples\v2\node_subscription\node_modules\@apimatic\core\node_modules\tslib\tslib.js:114:62)
at processTicksAndRejections (internal/process/task_queues.js:95:5) {
request: {
method: 'POST',
url: 'https://connect.squareupsandbox.com/v2/customers',
headers: {
'user-agent': 'Square-TypeScript-SDK/15.0.0',
'content-type': 'application/json',
authorization: 'Bearer EAAAEFFl-2suL2vQ6iXhKJnnym_oSz50iD2-R7ygX_YypdnxeY3hQPhtLHTfoqR8',
'Square-Version': '2021-10-20',
accept: 'application/json'
},
body: {
type: 'text',
content: '{"idempotency_key":"8b18cec1-1f9a-4d1f-b61e-a18fcbffdafb","given_name":"John","family_name":"Doe","email_address":"johndoe@square-example.com"}'
}
},
statusCode: 400,
headers: {
date: 'Sat, 13 Nov 2021 08:01:55 GMT',
'frame-options': 'DENY',
'x-frame-options': 'DENY',
'x-content-type-options': 'nosniff',
'x-xss-protection': '1; mode=block',
'content-type': 'application/json',
'content-length': '123',
'strict-transport-security': 'max-age=631152000; includeSubDomains; preload',
connection: 'close'
},
body: '{"errors": [{"code": "BAD_REQUEST","detail": "Expected \\"{\\" (line 1, character 1)","category": "INVALID_REQUEST_ERROR"}]}\n',
result: [Object: null prototype] { errors: [ [Object: null prototype] ] },
errors: [
[Object: null prototype] {
code: 'BAD_REQUEST',
detail: 'Expected "{" (line 1, character 1)',
category: 'INVALID_REQUEST_ERROR'
}
]
}
Updating catalog items failed: ApiError: Response status code was not ok: 400.
at D:\REPOS\connect-api-examples\connect-examples\v2\node_subscription\node_modules\@apimatic\core\lib\http\requestBuilder.js:360:23
at DefaultRequestBuilder.<anonymous> (D:\REPOS\connect-api-examples\connect-examples\v2\node_subscription\node_modules\@apimatic\core\lib\http\requestBuilder.js:172:50)
at step (D:\REPOS\connect-api-examples\connect-examples\v2\node_subscription\node_modules\@apimatic\core\node_modules\tslib\tslib.js:143:27)
at Object.next (D:\REPOS\connect-api-examples\connect-examples\v2\node_subscription\node_modules\@apimatic\core\node_modules\tslib\tslib.js:124:57)
at fulfilled (D:\REPOS\connect-api-examples\connect-examples\v2\node_subscription\node_modules\@apimatic\core\node_modules\tslib\tslib.js:114:62)
at processTicksAndRejections (internal/process/task_queues.js:95:5) {
request: {
method: 'POST',
url: 'https://connect.squareupsandbox.com/v2/catalog/batch-upsert',
headers: {
'user-agent': 'Square-TypeScript-SDK/15.0.0',
'content-type': 'application/json',
authorization: 'Bearer EAAAEFFl-2suL2vQ6iXhKJnnym_oSz50iD2-R7ygX_YypdnxeY3hQPhtLHTfoqR8',
'Square-Version': '2021-10-20',
accept: 'application/json'
},
body: {
type: 'text',
content: '{"idempotency_key":"db0cd490-4f27-46b2-b464-543a088c7c21","batches":[{"objects":[{"type":"SUBSCRIPTION_PLAN","id":"#Multiphase Gym Membership","subscription_plan_data":{"name":"Gym Membership","phases":[{"cadence":"MONTHLY","periods":1,"recurring_price_money":{"amount":100,"currency":"AUD"}},{"cadence":"WEEKLY","recurring_price_money":{"amount":1500,"currency":"AUD"}}]}},{"type":"SUBSCRIPTION_PLAN","id":"#Spa Service Addon","subscription_plan_data":{"name":"Spa Service Addon","phases":[{"cadence":"WEEKLY","periods":2,"recurring_price_money":{"amount":0,"currency":"AUD"}},{"cadence":"MONTHLY","recurring_price_money":{"amount":8000,"currency":"AUD"}}]}},{"type":"SUBSCRIPTION_PLAN","id":"#Laundry Service Addon","subscription_plan_data":{"name":"Laundry Service Addon","phases":[{"cadence":"WEEKLY","recurring_price_money":{"amount":1000,"currency":"AUD"}}]}}]}]}'
}
},
statusCode: 400,
headers: {
'content-type': 'application/json',
'square-version': '2021-10-20',
vary: 'Origin, Accept-Encoding',
'x-content-type-options': 'nosniff',
'x-download-options': 'noopen',
'x-frame-options': 'SAMEORIGIN',
'x-permitted-cross-domain-policies': 'none',
'x-speleo-traceid': 'KFWVWBEgMgXhR',
'x-xss-protection': '1; mode=block',
date: 'Sat, 13 Nov 2021 08:01:58 GMT',
'content-length': '174',
'strict-transport-security': 'max-age=631152000; includeSubDomains; preload',
connection: 'close'
},
body: '{"errors":[{"category":"INVALID_REQUEST_ERROR","code":"BAD_REQUEST","detail":"Value is expected to be map[string]interface {}, but received string (line 1, character 991)"}]}',
result: [Object: null prototype] { errors: [ [Object: null prototype] ] },
errors: [
[Object: null prototype] {
category: 'INVALID_REQUEST_ERROR',
code: 'BAD_REQUEST',
detail: 'Value is expected to be map[string]interface {}, but received string (line 1, character 991)'
}
]
}
Hi @oshihirii,
This is a known issue that has been reported before but we are unable to reproduce it on our end. I'd like to investigate further. Would you kindly provide me with the terminal that you are running these commands in?
i am using Windows Terminal (Preview) and Git Bash is my default profile (from Git).
may I ask which issue you are referring to?
this issue started with 1) the NODE_ENV issue, but then there were two other issues described: 2) the app doesn’t load (error in browser) 3) npm run seed doesn’t work (error in terminal).
Update:
If I manually add clients to the sandbox environment, then the app loads when running:
npm test
However, when I click on one of the customer names, I get:
Error message in chrome dev tools is:
GET http://localhost:3000/management/some-code-here/some-code-here 500 (Internal Server Error)
This is a very old thread, but I had this issue when starting.
Simple solution is to remove the test
script inside package.json
and pass the NODE_ENV
as a param to the env.json
file instead like this:
package.json:
"scripts": {
"start": "nodemon -e js,pug ./bin/www",
"test": "echo 'No tests found'",
"seed": "node ./bin/script/seed-catalog.js generate",
"clear": "node ./bin/script/seed-catalog.js clear",
"help": "node ./bin/script/seed-catalog.js --help"
},
env.json:
NODE_ENV=sandbox
SQ_APPLICATION_ID=your-application-id
SQ_ACCESS_TOKEN=your-access-token
When you're ready to run in production you just change to NODE_ENV=production
.
Windows 10
Node v14.18.1
I've cloned connect-api-examples with:
I'm following the instructions here: for
connect-examples/v2/node_subscription
:https://github.com/square/connect-api-examples/tree/master/connect-examples/v2/node_subscription
I'm in the following location:
I've created a
.env
file with this content:and run:
and get error:
Perhaps it has something to do with issues discussed here?
https://stackoverflow.com/q/11928013
Also, FYI, there is no
config.json
file in the root directory of this example, as referred to here:https://github.com/square/connect-api-examples/tree/master/connect-examples/v2/node_subscription#project-organization