Move API models and errors to separate files
This commit is contained in:
parent
e99ccdab9c
commit
025f74808a
|
@ -8,7 +8,6 @@ import (
|
||||||
"net/http"
|
"net/http"
|
||||||
"regexp"
|
"regexp"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
|
||||||
|
|
||||||
"gitlab.com/mporrato/uBrowserSync/syncstore"
|
"gitlab.com/mporrato/uBrowserSync/syncstore"
|
||||||
)
|
)
|
||||||
|
@ -32,34 +31,6 @@ var (
|
||||||
http.StatusBadRequest)
|
http.StatusBadRequest)
|
||||||
)
|
)
|
||||||
|
|
||||||
type serviceInfoResp struct {
|
|
||||||
Version string `json:"version"`
|
|
||||||
Message string `json:"message"`
|
|
||||||
MaxSyncSize int `json:"maxSyncSize"`
|
|
||||||
Status int `json:"status"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type CreateReq struct {
|
|
||||||
Version string `json:"version"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type UpdateReq struct {
|
|
||||||
Bookmarks string `json:"bookmarks"`
|
|
||||||
LastUpdated time.Time `json:"lastUpdated"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type UpdateResp struct {
|
|
||||||
LastUpdated time.Time `json:"lastUpdated"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type LastUpdatedResp struct {
|
|
||||||
LastUpdated time.Time `json:"lastUpdated"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type GetSyncVerResp struct {
|
|
||||||
Version string `json:"version"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func sendJSON(w http.ResponseWriter, status int, data interface{}) {
|
func sendJSON(w http.ResponseWriter, status int, data interface{}) {
|
||||||
body, err := json.Marshal(data)
|
body, err := json.Marshal(data)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -95,7 +66,7 @@ func info(w http.ResponseWriter, req *http.Request) {
|
||||||
sendJSONError(w, syncstore.NotImplementedError)
|
sendJSONError(w, syncstore.NotImplementedError)
|
||||||
} else {
|
} else {
|
||||||
log.Println("info()")
|
log.Println("info()")
|
||||||
serviceInfo := serviceInfoResp{
|
serviceInfo := syncstore.ServiceInfoResp{
|
||||||
Version: apiVersion,
|
Version: apiVersion,
|
||||||
Message: infoMessage,
|
Message: infoMessage,
|
||||||
Status: serviceStatus,
|
Status: serviceStatus,
|
||||||
|
@ -105,7 +76,7 @@ func info(w http.ResponseWriter, req *http.Request) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func createSync(w http.ResponseWriter, req *http.Request) {
|
func createSync(w http.ResponseWriter, req *http.Request) {
|
||||||
body := new(CreateReq)
|
body := new(syncstore.CreateReq)
|
||||||
err := json.NewDecoder(req.Body).Decode(&body)
|
err := json.NewDecoder(req.Body).Decode(&body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
sendJSONError(w, invalidRequestError)
|
sendJSONError(w, invalidRequestError)
|
||||||
|
@ -138,7 +109,7 @@ func getLastUpdated(syncId string, w http.ResponseWriter, _ *http.Request) {
|
||||||
sendJSONError(w, err)
|
sendJSONError(w, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
sendJSONOk(w, LastUpdatedResp{LastUpdated: resp})
|
sendJSONOk(w, syncstore.LastUpdatedResp{LastUpdated: resp})
|
||||||
}
|
}
|
||||||
|
|
||||||
func getVersion(syncId string, w http.ResponseWriter, _ *http.Request) {
|
func getVersion(syncId string, w http.ResponseWriter, _ *http.Request) {
|
||||||
|
@ -147,11 +118,11 @@ func getVersion(syncId string, w http.ResponseWriter, _ *http.Request) {
|
||||||
sendJSONError(w, err)
|
sendJSONError(w, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
sendJSONOk(w, GetSyncVerResp{Version: resp})
|
sendJSONOk(w, syncstore.GetSyncVerResp{Version: resp})
|
||||||
}
|
}
|
||||||
|
|
||||||
func updateSync(syncId string, w http.ResponseWriter, req *http.Request) {
|
func updateSync(syncId string, w http.ResponseWriter, req *http.Request) {
|
||||||
body := new(UpdateReq)
|
body := new(syncstore.UpdateReq)
|
||||||
err := json.NewDecoder(req.Body).Decode(&body)
|
err := json.NewDecoder(req.Body).Decode(&body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
sendJSONError(w, invalidRequestError)
|
sendJSONError(w, invalidRequestError)
|
||||||
|
@ -166,7 +137,7 @@ func updateSync(syncId string, w http.ResponseWriter, req *http.Request) {
|
||||||
sendJSONError(w, err)
|
sendJSONError(w, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
sendJSONOk(w, UpdateResp{LastUpdated: resp})
|
sendJSONOk(w, syncstore.UpdateResp{LastUpdated: resp})
|
||||||
}
|
}
|
||||||
|
|
||||||
func bookmarks(w http.ResponseWriter, req *http.Request) {
|
func bookmarks(w http.ResponseWriter, req *http.Request) {
|
||||||
|
|
|
@ -3,18 +3,8 @@ package syncstore
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"net/http"
|
"net/http"
|
||||||
"time"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type Blob struct {
|
|
||||||
ID string `json:"id"`
|
|
||||||
Bookmarks string `json:"bookmarks"`
|
|
||||||
Version string `json:"version"`
|
|
||||||
Created time.Time `json:"created"`
|
|
||||||
LastUpdated time.Time `json:"lastUpdated"`
|
|
||||||
LastAccessed time.Time `json:"lastAccessed"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type ErrorPayload struct {
|
type ErrorPayload struct {
|
||||||
Code string `json:"code"`
|
Code string `json:"code"`
|
||||||
Message string `json:"message"`
|
Message string `json:"message"`
|
|
@ -0,0 +1,52 @@
|
||||||
|
package syncstore
|
||||||
|
|
||||||
|
import "time"
|
||||||
|
|
||||||
|
type Blob struct {
|
||||||
|
ID string `json:"id"`
|
||||||
|
Bookmarks string `json:"bookmarks"`
|
||||||
|
Version string `json:"version"`
|
||||||
|
Created time.Time `json:"created"`
|
||||||
|
LastUpdated time.Time `json:"lastUpdated"`
|
||||||
|
LastAccessed time.Time `json:"lastAccessed"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type CreateResp struct {
|
||||||
|
ID string `json:"id"`
|
||||||
|
LastUpdated time.Time `json:"lastUpdated"`
|
||||||
|
Version string `json:"version"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetResp struct {
|
||||||
|
Bookmarks string `json:"bookmarks"`
|
||||||
|
LastUpdated time.Time `json:"lastUpdated"`
|
||||||
|
Version string `json:"version"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ServiceInfoResp struct {
|
||||||
|
Version string `json:"version"`
|
||||||
|
Message string `json:"message"`
|
||||||
|
MaxSyncSize int `json:"maxSyncSize"`
|
||||||
|
Status int `json:"status"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type CreateReq struct {
|
||||||
|
Version string `json:"version"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type UpdateReq struct {
|
||||||
|
Bookmarks string `json:"bookmarks"`
|
||||||
|
LastUpdated time.Time `json:"lastUpdated"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type UpdateResp struct {
|
||||||
|
LastUpdated time.Time `json:"lastUpdated"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type LastUpdatedResp struct {
|
||||||
|
LastUpdated time.Time `json:"lastUpdated"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetSyncVerResp struct {
|
||||||
|
Version string `json:"version"`
|
||||||
|
}
|
|
@ -23,18 +23,6 @@ func NewStore(drv StoreDriver) Store {
|
||||||
return Store{drv: drv}
|
return Store{drv: drv}
|
||||||
}
|
}
|
||||||
|
|
||||||
type CreateResp struct {
|
|
||||||
ID string `json:"id"`
|
|
||||||
LastUpdated time.Time `json:"lastUpdated"`
|
|
||||||
Version string `json:"version"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type GetResp struct {
|
|
||||||
Bookmarks string `json:"bookmarks"`
|
|
||||||
LastUpdated time.Time `json:"lastUpdated"`
|
|
||||||
Version string `json:"version"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (store *Store) Create(version string) (*CreateResp, error) {
|
func (store *Store) Create(version string) (*CreateResp, error) {
|
||||||
var sid string
|
var sid string
|
||||||
store.lock.Lock()
|
store.lock.Lock()
|
||||||
|
|
Loading…
Reference in New Issue