Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Save load requests #29

Merged
merged 29 commits into from
Mar 15, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
ac1a4d1
view refactor, headers and default values
javaguirre Nov 8, 2015
4a47ffa
RestClientRequest
javaguirre Nov 9, 2015
83977b5
Package config
javaguirre Nov 9, 2015
7f30e7c
Recent path to config, gitignore default requests paths
javaguirre Nov 9, 2015
bb6b703
RestClientPersist
javaguirre Nov 9, 2015
4d652b7
Added RestClientEvent definitions
javaguirre Feb 20, 2016
fa68e34
RestClientPersist simplified
javaguirre Feb 20, 2016
61d6c7f
Added RestClientRecentRequest service
javaguirre Feb 21, 2016
9163f35
Using Atom Emitter and events to trigger some logic
javaguirre Feb 21, 2016
0edf0b0
Code standards cleanup and better method selection
javaguirre Feb 21, 2016
1678bce
Loading Recent requests in view
javaguirre Feb 21, 2016
525eb89
Moving package path to a constant
javaguirre Feb 23, 2016
187bf3b
onResponse refactor
javaguirre Feb 23, 2016
b86b581
initPath on constructor for recent request client
javaguirre Feb 23, 2016
9bcbb60
Not send HTTP request if not url
javaguirre Feb 23, 2016
e0781bd
Merging recent request service with persist service
javaguirre Feb 24, 2016
f09eebb
Recent request logic refactor
javaguirre Feb 29, 2016
922dcab
Save and load requests logic
javaguirre Feb 29, 2016
7036242
Remove link from saved implemented
javaguirre Feb 29, 2016
256be45
Moving request limit to view
javaguirre Feb 29, 2016
af6fa6f
Load request just loads the data in the form now
javaguirre Feb 29, 2016
8c07074
get Headers right on loading request
javaguirre Mar 3, 2016
54155a8
Set request file limit on client persist
javaguirre Mar 7, 2016
1a4838b
Fix header output on load request
javaguirre Mar 7, 2016
36d61ca
RestClientPersist unittests
javaguirre Mar 7, 2016
ef5fe64
Fix highlighted method when loading requests
javaguirre Mar 8, 2016
65a437b
actually apply method
ddavison Mar 8, 2016
e2a226e
redundant class manipulation
Mar 15, 2016
8132c07
add buffer between encode/decode links; add new example gif
ddavison Mar 15, 2016
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
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
.DS_Store
npm-debug.log
node_modules
recent.json
collections.json
Binary file modified images/example.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions lib/rest-client-event.coffee
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
module.exports =
class RestClientEvent
@NEW_REQUEST = 'new-request'
@REQUEST_FINISHED = 'request-finished'
73 changes: 73 additions & 0 deletions lib/rest-client-persist.coffee
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
fs = require 'fs'

module.exports =
class RestClientPersist
REQUEST_FILE_LIMIT: 100
requests: []
requestFileLimit: @REQUEST_FILE_LIMIT

constructor: (path) ->
@path = path
@initPath()

load: (callback) ->
fs.readFile(@path, callback)

save: (request) =>
@requests.unshift(request)
@requests = @requests.slice(0, @REQUESTS_LIMIT)
@saveFile()

initPath: ->
try
stat = fs.lstatSync(@path)
if !stat.isFile()
@saveFile()
catch statErr
@saveFile()

saveFile: ->
requestsToBeSaved = @get(@requestFileLimit)
fs.writeFile(
"#{@path}",
JSON.stringify(requestsToBeSaved),
@showErrorOnPersist
)

update: (requests) ->
@requests = requests

get: (limit = false) ->
if limit
return @requests.slice(0, limit)

@requests

remove: (removed_request) ->
for request, index in @requests
if @requestEquals(removed_request, request)
@requests.splice(index, 1)
@saveFile()
break

requestEquals: (request1, request2) ->
return (request1.url == request2.url and
request1.method == request2.method)


showErrorOnPersist: (err) =>
if err
atom.confirm(
message: 'Cannot save file: ' + @path,
detailedMessage: JSON.stringify(err)
)

getRequestFileLimit: () ->
return @requestFileLimit

setRequestFileLimit: (limit) ->
@requestFileLimit = limit

clear: ->
@requests = []
@saveFile()
4 changes: 4 additions & 0 deletions lib/rest-client-request.coffee
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
module.exports =
class RestClientRequest
constructor: (data) ->
@data = data
Loading