Merge pull request #1025 from hedgedoc/1.x/replace-request
[1.x] Dependencies: Replace deprecated request library with node-fetch
This commit is contained in:
		
						commit
						cddbe57e76
					
				
							
								
								
									
										105
									
								
								lib/response.js
									
									
									
									
									
								
							
							
						
						
									
										105
									
								
								lib/response.js
									
									
									
									
									
								
							| @ -3,7 +3,7 @@ | ||||
| // external modules
 | ||||
| const fs = require('fs') | ||||
| const path = require('path') | ||||
| const request = require('request') | ||||
| const fetch = require('node-fetch') | ||||
| // core
 | ||||
| const config = require('./config') | ||||
| const logger = require('./logger') | ||||
| @ -76,46 +76,57 @@ function githubActionGist (req, res, note) { | ||||
|       state: state | ||||
|     } | ||||
|     const authUrl = 'https://github.com/login/oauth/access_token' | ||||
|     request({ | ||||
|       url: authUrl, | ||||
|     fetch(authUrl, { | ||||
|       method: 'POST', | ||||
|       json: data | ||||
|     }, function (error, httpResponse, body) { | ||||
|       if (!error && httpResponse.statusCode === 200) { | ||||
|         const accessToken = body.access_token | ||||
|         if (accessToken) { | ||||
|           const content = note.content | ||||
|           const title = models.Note.decodeTitle(note.title) | ||||
|           const filename = title.replace('/', ' ') + '.md' | ||||
|           const gist = { | ||||
|             files: {} | ||||
|           } | ||||
|           gist.files[filename] = { | ||||
|             content: content | ||||
|           } | ||||
|           const gistUrl = 'https://api.github.com/gists' | ||||
|           request({ | ||||
|             url: gistUrl, | ||||
|             headers: { | ||||
|               'User-Agent': 'HedgeDoc', | ||||
|               Authorization: 'token ' + accessToken | ||||
|             }, | ||||
|             method: 'POST', | ||||
|             json: gist | ||||
|           }, function (error, httpResponse, body) { | ||||
|             if (!error && httpResponse.statusCode === 201) { | ||||
|               res.setHeader('referer', '') | ||||
|               res.redirect(body.html_url) | ||||
|             } else { | ||||
|               return errors.errorForbidden(res) | ||||
|             } | ||||
|           }) | ||||
|         } else { | ||||
|           return errors.errorForbidden(res) | ||||
|       body: JSON.stringify(data), | ||||
|       headers: { | ||||
|         'Content-Type': 'application/json', | ||||
|         Accept: 'application/json' | ||||
|       } | ||||
|     }).then(resp => { | ||||
|       if (!resp.ok) { | ||||
|         throw new Error('forbidden') | ||||
|       } | ||||
|       return resp.json() | ||||
|     }).then(body => { | ||||
|       const accessToken = body.access_token | ||||
|       if (!accessToken) { | ||||
|         throw new Error('forbidden') | ||||
|       } | ||||
|       const content = note.content | ||||
|       const title = models.Note.decodeTitle(note.title) | ||||
|       const filename = title.replace('/', ' ') + '.md' | ||||
|       const gist = { | ||||
|         files: {} | ||||
|       } | ||||
|       gist.files[filename] = { | ||||
|         content: content | ||||
|       } | ||||
|       const gistUrl = 'https://api.github.com/gists' | ||||
|       return fetch(gistUrl, { | ||||
|         method: 'POST', | ||||
|         body: JSON.stringify(gist), | ||||
|         headers: { | ||||
|           'User-Agent': 'HedgeDoc', | ||||
|           Authorization: 'token ' + accessToken, | ||||
|           'Content-Type': 'application/json', | ||||
|           Accept: 'application/json' | ||||
|         } | ||||
|       } else { | ||||
|       }) | ||||
|     }).then(resp => { | ||||
|       if (resp.status !== 201) { | ||||
|         throw new Error('forbidden') | ||||
|       } | ||||
|       return resp.json() | ||||
|     }).then(body => { | ||||
|       res.setHeader('referer', '') | ||||
|       res.redirect(body.html_url) | ||||
|     }).catch(error => { | ||||
|       if (error.message === 'forbidden') { | ||||
|         return errors.errorForbidden(res) | ||||
|       } | ||||
|       logger.error('GitHub Gist auth failed: ' + error) | ||||
|       return errors.errorInternalError(res) | ||||
|     }) | ||||
|   } | ||||
| } | ||||
| @ -146,17 +157,17 @@ function gitlabActionProjects (req, res, note) { | ||||
|       const ret = { baseURL: config.gitlab.baseURL, version: config.gitlab.version } | ||||
|       ret.accesstoken = user.accessToken | ||||
|       ret.profileid = user.profileid | ||||
|       request( | ||||
|         config.gitlab.baseURL + '/api/' + config.gitlab.version + '/projects?membership=yes&per_page=100&access_token=' + user.accessToken, | ||||
|         function (error, httpResponse, body) { | ||||
|           if (!error && httpResponse.statusCode === 200) { | ||||
|             ret.projects = JSON.parse(body) | ||||
|             return res.send(ret) | ||||
|           } else { | ||||
|             return res.send(ret) | ||||
|           } | ||||
|       const apiUrl = `${config.gitlab.baseURL}/api/${config.gitlab.version}/projects?membership=yes&per_page=100&access_token=${user.accessToken}` | ||||
|       fetch(apiUrl).then(resp => { | ||||
|         if (!resp.ok) { | ||||
|           res.send(ret) | ||||
|           throw new Error('HTTP request returned not okay-ish status') | ||||
|         } | ||||
|       ) | ||||
|         return resp.json() | ||||
|       }).then(body => { | ||||
|         ret.projects = body | ||||
|         return res.send(ret) | ||||
|       }) | ||||
|     }).catch(function (err) { | ||||
|       logger.error('gitlab action projects failed: ' + err) | ||||
|       return errors.errorInternalError(res) | ||||
|  | ||||
| @ -91,6 +91,7 @@ | ||||
|     "moment": "^2.17.1", | ||||
|     "morgan": "^1.7.0", | ||||
|     "mysql2": "^2.0.0", | ||||
|     "node-fetch": "^2.6.1", | ||||
|     "passport": "^0.4.0", | ||||
|     "passport-dropbox-oauth2": "^1.1.0", | ||||
|     "passport-facebook": "^3.0.0", | ||||
| @ -110,7 +111,6 @@ | ||||
|     "randomcolor": "^0.6.0", | ||||
|     "raphael": "^2.3.0", | ||||
|     "readline-sync": "^1.4.7", | ||||
|     "request": "^2.88.0", | ||||
|     "reveal.js": "^3.9.2", | ||||
|     "rimraf": "^3.0.2", | ||||
|     "scrypt-async": "^2.0.1", | ||||
|  | ||||
							
								
								
									
										12
									
								
								yarn.lock
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								yarn.lock
									
									
									
									
									
								
							| @ -448,7 +448,6 @@ | ||||
| 
 | ||||
| "Idle.Js@git+https://github.com/shawnmclean/Idle.js": | ||||
|   version "0.0.1" | ||||
|   uid db9beb3483a460ad638ec947867720f0ed066a62 | ||||
|   resolved "git+https://github.com/shawnmclean/Idle.js#db9beb3483a460ad638ec947867720f0ed066a62" | ||||
| 
 | ||||
| JSV@^4.0.x: | ||||
| @ -2193,7 +2192,6 @@ code-point-at@^1.0.0: | ||||
| 
 | ||||
| "codemirror@git+https://github.com/hedgedoc/CodeMirror.git": | ||||
|   version "5.58.2" | ||||
|   uid f780b569b3717cdff4c8507538cc63101bfa02e1 | ||||
|   resolved "git+https://github.com/hedgedoc/CodeMirror.git#f780b569b3717cdff4c8507538cc63101bfa02e1" | ||||
| 
 | ||||
| collection-visit@^1.0.0: | ||||
| @ -3225,7 +3223,6 @@ detect-libc@^1.0.2: | ||||
| 
 | ||||
| "diff-match-patch@git+https://github.com/hackmdio/diff-match-patch.git": | ||||
|   version "1.1.1" | ||||
|   uid c2f8fb9d69aa9490b764850aa86ba442c93ccf78 | ||||
|   resolved "git+https://github.com/hackmdio/diff-match-patch.git#c2f8fb9d69aa9490b764850aa86ba442c93ccf78" | ||||
| 
 | ||||
| diff@5.0.0: | ||||
| @ -4930,7 +4927,6 @@ image-size@~0.5.0: | ||||
| 
 | ||||
| "imgur@git+https://github.com/hackmdio/node-imgur.git": | ||||
|   version "0.5.0" | ||||
|   uid de0a7a1f1eb2cb6628385fedb990ad396a190573 | ||||
|   resolved "git+https://github.com/hackmdio/node-imgur.git#de0a7a1f1eb2cb6628385fedb990ad396a190573" | ||||
|   dependencies: | ||||
|     commander "^2.13.0" | ||||
| @ -5533,7 +5529,6 @@ js-cookie@^2.1.3: | ||||
| 
 | ||||
| "js-sequence-diagrams@git+https://github.com/hedgedoc/js-sequence-diagrams.git": | ||||
|   version "2.0.1" | ||||
|   uid bda0e49b6c2754f3c7158b1dfb9ccf26efc24b39 | ||||
|   resolved "git+https://github.com/hedgedoc/js-sequence-diagrams.git#bda0e49b6c2754f3c7158b1dfb9ccf26efc24b39" | ||||
|   dependencies: | ||||
|     lodash "4.17.x" | ||||
| @ -6097,7 +6092,6 @@ lutim@^1.0.2: | ||||
| 
 | ||||
| "lz-string@git+https://github.com/hackmdio/lz-string.git": | ||||
|   version "1.4.4" | ||||
|   uid efd1f64676264d6d8871b01f4f375fc6ef4f9022 | ||||
|   resolved "git+https://github.com/hackmdio/lz-string.git#efd1f64676264d6d8871b01f4f375fc6ef4f9022" | ||||
| 
 | ||||
| make-dir@^1.0.0: | ||||
| @ -6411,7 +6405,6 @@ messageformat@^2.3.0: | ||||
| 
 | ||||
| "meta-marked@git+https://github.com/hedgedoc/meta-marked": | ||||
|   version "0.4.5" | ||||
|   uid "4fb5cb5a204969cc91e66eee92c0211188e69a2b" | ||||
|   resolved "git+https://github.com/hedgedoc/meta-marked#4fb5cb5a204969cc91e66eee92c0211188e69a2b" | ||||
|   dependencies: | ||||
|     js-yaml "~3.14.0" | ||||
| @ -6881,6 +6874,11 @@ node-addon-api@^3.0.0: | ||||
|   resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.1.0.tgz#98b21931557466c6729e51cb77cd39c965f42239" | ||||
|   integrity sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw== | ||||
| 
 | ||||
| node-fetch@^2.6.1: | ||||
|   version "2.6.1" | ||||
|   resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" | ||||
|   integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== | ||||
| 
 | ||||
| node-forge@^0.10.0: | ||||
|   version "0.10.0" | ||||
|   resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user