Merge pull request #1 from nxshock/refactor/go-default-project-structure

Changed project structure to default (Standard Golang project layout)
This commit is contained in:
ChronosX88 2019-07-19 13:32:47 +04:00 committed by GitHub
commit 97969bbee1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 36 additions and 23 deletions

1
.gitignore vendored
View File

@ -10,3 +10,4 @@
# Output of the go coverage tool, specifically when used with LiteIDE
*.out
/cmd/cmd

View File

@ -1,8 +1,10 @@
language: go
sudo: false
go:
- tip
- 1.12.x
env:
- GO111MODULE=on
before_install:
- go get github.com/mattn/goveralls
script:
- $GOPATH/bin/goveralls -service=travis-ci
- make update-deps
install:
- make

5
Makefile Normal file
View File

@ -0,0 +1,5 @@
all:
cd cmd; \
go build
update-deps:
go mod tidy

View File

@ -2,16 +2,18 @@ package main
import (
"log"
internal "github.com/nxshock/signaller/internal"
)
var (
server *Server
server *internal.Server
)
func init() {
server = New()
server = internal.New()
server.Address = "localhost"
server.Backend = NewMemoryBackend()
server.Backend = internal.NewMemoryBackend()
server.Backend.Register("andrew", "1", "")
}

View File

@ -1,6 +1,6 @@
package main
package internal
import "github.com/nxshock/signaller/models"
import "github.com/nxshock/signaller/internal/models"
type Backend interface {
Register(username, password, device string) (token string, error *models.ApiError)

View File

@ -1,4 +1,4 @@
package main
package internal
const (
Version = "r0.5.0"

View File

@ -1,9 +1,9 @@
package main
package internal
import (
"net/http"
"github.com/nxshock/signaller/models"
"github.com/nxshock/signaller/internal/models"
)
func errorResponse(w http.ResponseWriter, code models.ApiError, httpCode int, message string) {

View File

@ -1,4 +1,4 @@
package main
package internal
import (
"encoding/json"
@ -8,7 +8,7 @@ import (
"strconv"
"strings"
"github.com/nxshock/signaller/models"
"github.com/nxshock/signaller/internal/models"
)
func RootHandler(w http.ResponseWriter, r *http.Request) {
@ -58,7 +58,7 @@ func LoginHandler(w http.ResponseWriter, r *http.Request) {
request.Identifier.User = strings.TrimPrefix(request.Identifier.User, "@")
}
token, apiErr := server.Backend.Login(request.Identifier.User, request.Password, request.DeviceID)
token, apiErr := currServer.Backend.Login(request.Identifier.User, request.Password, request.DeviceID)
if apiErr != nil {
errorResponse(w, *apiErr, http.StatusForbidden, "")
return
@ -87,7 +87,7 @@ func LogoutHandler(w http.ResponseWriter, r *http.Request) {
return
}
apiErr := server.Backend.Logout(token)
apiErr := currServer.Backend.Logout(token)
if apiErr != nil {
errorResponse(w, *apiErr, http.StatusBadRequest, "") // TODO: check code
return
@ -112,7 +112,7 @@ func RegisterHandler(w http.ResponseWriter, r *http.Request) {
var request models.RegisterRequest
getRequest(r, &request) // TODO: handle error
token, apiErr := server.Backend.Register(request.Username, request.Password, request.DeviceID)
token, apiErr := currServer.Backend.Register(request.Username, request.Password, request.DeviceID)
if apiErr != nil {
errorResponse(w, *apiErr, http.StatusBadRequest, "")
return
@ -145,7 +145,7 @@ func SyncHandler(w http.ResponseWriter, r *http.Request) {
return
}
response, _ := server.Backend.Sync(token, request) // TODO: handle error
response, _ := currServer.Backend.Sync(token, request) // TODO: handle error
response.NextBatch = "123"
response.Rooms = models.RoomsSyncReply{}

View File

@ -1,4 +1,4 @@
package main
package internal
import (
"net/http"
@ -6,6 +6,8 @@ import (
"github.com/gorilla/mux"
)
var currServer Server
type Server struct {
httpServer *http.Server
router *mux.Router
@ -24,13 +26,14 @@ func New() *Server {
router.HandleFunc("/", RootHandler)
httpServer := new(http.Server)
httpServer.Addr = ":80"
httpServer.Addr = ":8008"
httpServer.Handler = router
server := &Server{
httpServer: httpServer,
router: router}
currServer = *server
return server
}

View File

@ -1,4 +1,4 @@
package main
package internal
import (
"crypto/rand"

View File

@ -1,4 +1,4 @@
package main
package internal
import (
"encoding/json"
@ -6,7 +6,7 @@ import (
"os"
"sync"
"github.com/nxshock/signaller/models"
"github.com/nxshock/signaller/internal/models"
)
var first bool