Closes#302
This package still needs a lot of work, but I feel like this is a good stopping point.
In a follow up, I plan on writing some tests, and refactoring some of the ways the sync.Watcher goroutines are managed.
The dep library was initially a self contained project, but doesn't have a community of users.
Keeping it in the main repo should reduce the maintenance burden and simplify dependency management for the project.
The remove devices command now supports taking a list of udids and list of serials. You can provide list or the other or both. The remove command will simply loop through all devices passed in and attempt to delete.
The new remove devices command takes a UDID or list of UDIDs
as input and calls the devices delete endpoint. Since serial number
isn't strictly required by the spec it seemed to make more sense
to keep the remove working with only UDIDs. The get devices command
with a serial number filter can always be used to look up a UDID
from a serial number.
Move the code for polling topics and updating device records into an independent worker.
Cleans up the code and makes it possible to swap the db backend.
* search a serial out of all serials
* clean up usage
* roll back development code, cleanup
* pull changes to mdmctl and decode url params
* wire up List to accept opts with debugging
* implement forEach without filtering opt
* implement filtering for multiple inbound serials
* drop gorilla/schema in favor of json body
* address comments
* tighten up return
* remove device.Store ref and make use of httputil pkg
Moved all the endpoints into the profile package.
Defined a Store interface which includes all the used BoltDB methods.
Moved the BoltDB implementation into a subpackage.
re-did the folder structure for the API. The client still lives in the server
packages, but will be gradually moved into api/client to remove coupling and make the APIs clearer.
I noticed that all deptoken is is a store for DEP tokens, which fits nicely with
the rest of the storage/api packages in platform.
The next step will be to move the deptoken store into the config package, but it must be
done in a gradual way since people are already using it today.