Feature/backend (#101)

* move backend code #99

* adjust drone build for backend subdir

* move .rest to backend
This commit is contained in:
Umputun
2018-06-23 12:31:19 -05:00
committed by GitHub
parent 213437bf34
commit 7aee7add08
689 changed files with 112 additions and 108 deletions
+1 -1
View File
@@ -7,7 +7,7 @@ pipeline:
build:
image: golang:1.10-alpine
commands:
- cd app
- cd backend/app
- go build -v ./...
docker_master:
+3 -4
View File
@@ -15,10 +15,9 @@ ARG TRAVIS_TAG
ARG DRONE_TAG
ARG DRONE_COMMIT
WORKDIR /go/src/github.com/umputun/remark
WORKDIR /go/src/github.com/umputun/remark/backend
ADD app /go/src/github.com/umputun/remark/app
ADD vendor /go/src/github.com/umputun/remark/vendor
ADD backend /go/src/github.com/umputun/remark/backend
ADD .git /go/src/github.com/umputun/remark/.git
RUN cd app && go test ./...
@@ -66,7 +65,7 @@ ADD start.sh /srv/start.sh
RUN chmod +x /srv/start.sh /srv/import-disqus.sh /srv/restore-backup.sh /srv/migrate-data.sh /srv/create-backup.sh
COPY --from=build-backend /go/src/github.com/umputun/remark/remark /srv/
COPY --from=build-backend /go/src/github.com/umputun/remark/backend/remark /srv/
COPY --from=build-frontend /srv/web/public/ /srv/web
RUN chown -R app:app /srv
View File
View File
+7 -7
View File
@@ -17,13 +17,13 @@ import (
"github.com/jessevdk/go-flags"
"github.com/pkg/errors"
"github.com/umputun/remark/app/migrator"
"github.com/umputun/remark/app/rest/api"
"github.com/umputun/remark/app/rest/auth"
"github.com/umputun/remark/app/rest/cache"
"github.com/umputun/remark/app/rest/proxy"
"github.com/umputun/remark/app/store/engine"
"github.com/umputun/remark/app/store/service"
"github.com/umputun/remark/backend/app/migrator"
"github.com/umputun/remark/backend/app/rest/api"
"github.com/umputun/remark/backend/app/rest/auth"
"github.com/umputun/remark/backend/app/rest/cache"
"github.com/umputun/remark/backend/app/rest/proxy"
"github.com/umputun/remark/backend/app/store/engine"
"github.com/umputun/remark/backend/app/store/service"
)
// Opts with command line flags and env
@@ -12,7 +12,7 @@ import (
"testing"
"time"
flags "github.com/jessevdk/go-flags"
"github.com/jessevdk/go-flags"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
@@ -118,6 +118,7 @@ func prepApp(t *testing.T, port int, duration time.Duration) (*Application, cont
opts.Auth.Facebook.CSEC, opts.Auth.Facebook.CID = "csec", "cid"
opts.Auth.Yandex.CSEC, opts.Auth.Yandex.CID = "csec", "cid"
opts.Port = port
opts.BackupLocation = "/tmp"
os.Remove(opts.Store.Bolt.Path + "/remark.db")
@@ -9,7 +9,7 @@ import (
"github.com/pkg/errors"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/backend/app/store"
)
// Disqus implements Importer from disqus xml
@@ -8,9 +8,9 @@ import (
"github.com/coreos/bbolt"
"github.com/stretchr/testify/require"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/app/store/engine"
"github.com/umputun/remark/app/store/service"
"github.com/umputun/remark/backend/app/store"
"github.com/umputun/remark/backend/app/store/engine"
"github.com/umputun/remark/backend/app/store/service"
"github.com/stretchr/testify/assert"
)
@@ -9,7 +9,7 @@ import (
"os"
"github.com/pkg/errors"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/backend/app/store"
)
// Importer defines interface to convert posts from external sources
@@ -8,9 +8,9 @@ import (
"github.com/coreos/bbolt"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/umputun/remark/app/store/service"
"github.com/umputun/remark/backend/app/store/service"
"github.com/umputun/remark/app/store/engine"
"github.com/umputun/remark/backend/app/store/engine"
)
func TestMigrator_ImportDisqus(t *testing.T) {
@@ -8,7 +8,7 @@ import (
"log"
"github.com/pkg/errors"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/backend/app/store"
)
// Remark implements exporter and importer for internal store format
@@ -10,9 +10,9 @@ import (
"github.com/coreos/bbolt"
"github.com/stretchr/testify/assert"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/app/store/engine"
"github.com/umputun/remark/app/store/service"
"github.com/umputun/remark/backend/app/store"
"github.com/umputun/remark/backend/app/store/engine"
"github.com/umputun/remark/backend/app/store/service"
)
var testDb = "/tmp/test-remark.db"
@@ -11,13 +11,13 @@ import (
"github.com/go-chi/chi"
"github.com/go-chi/render"
"github.com/umputun/remark/app/rest/auth"
"github.com/umputun/remark/backend/app/rest/auth"
"github.com/umputun/remark/app/migrator"
"github.com/umputun/remark/app/rest"
"github.com/umputun/remark/app/rest/cache"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/app/store/service"
"github.com/umputun/remark/backend/app/migrator"
"github.com/umputun/remark/backend/app/rest"
"github.com/umputun/remark/backend/app/rest/cache"
"github.com/umputun/remark/backend/app/store"
"github.com/umputun/remark/backend/app/store/service"
)
// admin provides router for all requests available for admin users only
@@ -13,8 +13,8 @@ import (
"github.com/dgrijalva/jwt-go"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/umputun/remark/app/rest/auth"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/backend/app/rest/auth"
"github.com/umputun/remark/backend/app/store"
)
func TestAdmin_Delete(t *testing.T) {
@@ -15,7 +15,7 @@ import (
"github.com/go-chi/chi/middleware"
"github.com/umputun/remark/app/rest"
"github.com/umputun/remark/backend/app/rest"
)
// JSON is a map alias, just for convenience
@@ -9,8 +9,8 @@ import (
"github.com/go-chi/chi"
"github.com/stretchr/testify/assert"
"github.com/umputun/remark/app/rest"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/backend/app/rest"
"github.com/umputun/remark/backend/app/store"
"github.com/stretchr/testify/require"
)
@@ -16,9 +16,9 @@ import (
"github.com/go-chi/chi/middleware"
"github.com/go-chi/render"
"github.com/umputun/remark/app/migrator"
"github.com/umputun/remark/app/rest"
"github.com/umputun/remark/app/rest/cache"
"github.com/umputun/remark/backend/app/migrator"
"github.com/umputun/remark/backend/app/rest"
"github.com/umputun/remark/backend/app/rest/cache"
)
// Migrator rest runs on unexposed port and available for local requests only
@@ -55,8 +55,10 @@ func (m *Migrator) Shutdown() {
defer cancel()
m.lock.Lock()
if err := m.httpServer.Shutdown(ctx); err != nil {
log.Printf("[DEBUG] importer shutdown error, %s", err)
if m.httpServer != nil {
if err := m.httpServer.Shutdown(ctx); err != nil {
log.Printf("[DEBUG] importer shutdown error, %s", err)
}
}
m.lock.Unlock()
@@ -14,9 +14,9 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/umputun/remark/app/migrator"
"github.com/umputun/remark/app/store/engine"
"github.com/umputun/remark/app/store/service"
"github.com/umputun/remark/backend/app/migrator"
"github.com/umputun/remark/backend/app/store/engine"
"github.com/umputun/remark/backend/app/store/service"
)
func TestMigrator_Import(t *testing.T) {
@@ -19,13 +19,13 @@ import (
"github.com/pkg/errors"
"gopkg.in/russross/blackfriday.v2"
"github.com/umputun/remark/app/migrator"
"github.com/umputun/remark/app/rest"
"github.com/umputun/remark/app/rest/auth"
"github.com/umputun/remark/app/rest/cache"
"github.com/umputun/remark/app/rest/proxy"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/app/store/service"
"github.com/umputun/remark/backend/app/migrator"
"github.com/umputun/remark/backend/app/rest"
"github.com/umputun/remark/backend/app/rest/auth"
"github.com/umputun/remark/backend/app/rest/cache"
"github.com/umputun/remark/backend/app/rest/proxy"
"github.com/umputun/remark/backend/app/store"
"github.com/umputun/remark/backend/app/store/service"
)
// Rest is a rest access server
@@ -92,8 +92,10 @@ func (s *Rest) Shutdown() {
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
defer cancel()
s.lock.Lock()
if err := s.httpServer.Shutdown(ctx); err != nil {
log.Printf("[DEBUG] rest shutdown error, %s", err)
if s.httpServer != nil {
if err := s.httpServer.Shutdown(ctx); err != nil {
log.Printf("[DEBUG] rest shutdown error, %s", err)
}
}
log.Print("[DEBUG] shutdown rest server completed")
s.lock.Unlock()
@@ -16,10 +16,10 @@ import (
multierror "github.com/hashicorp/go-multierror"
blackfriday "gopkg.in/russross/blackfriday.v2"
"github.com/umputun/remark/app/rest"
"github.com/umputun/remark/app/rest/auth"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/app/store/service"
"github.com/umputun/remark/backend/app/rest"
"github.com/umputun/remark/backend/app/rest/auth"
"github.com/umputun/remark/backend/app/store"
"github.com/umputun/remark/backend/app/store/service"
)
// POST /comment - adds comment, resets all immutable fields
@@ -13,7 +13,7 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/backend/app/store"
)
func TestRest_Create(t *testing.T) {
@@ -12,9 +12,9 @@ import (
"github.com/go-chi/render"
blackfriday "gopkg.in/russross/blackfriday.v2"
"github.com/umputun/remark/app/rest"
"github.com/umputun/remark/app/rest/cache"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/backend/app/rest"
"github.com/umputun/remark/backend/app/rest/cache"
"github.com/umputun/remark/backend/app/store"
)
// GET /find?site=siteID&url=post-url&format=[tree|plain]&sort=[+/-time|+/-score]
@@ -12,8 +12,8 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/umputun/remark/app/rest"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/backend/app/rest"
"github.com/umputun/remark/backend/app/store"
)
func TestRest_Ping(t *testing.T) {
@@ -15,12 +15,12 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/umputun/remark/app/migrator"
"github.com/umputun/remark/app/rest/auth"
"github.com/umputun/remark/app/rest/proxy"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/app/store/engine"
"github.com/umputun/remark/app/store/service"
"github.com/umputun/remark/backend/app/migrator"
"github.com/umputun/remark/backend/app/rest/auth"
"github.com/umputun/remark/backend/app/rest/proxy"
"github.com/umputun/remark/backend/app/store"
"github.com/umputun/remark/backend/app/store/engine"
"github.com/umputun/remark/backend/app/store/service"
)
var testDb = "/tmp/test-remark.db"
@@ -9,9 +9,9 @@ import (
"github.com/go-chi/chi"
"github.com/gorilla/feeds"
"github.com/umputun/remark/app/rest"
"github.com/umputun/remark/app/rest/cache"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/backend/app/rest"
"github.com/umputun/remark/backend/app/rest/cache"
"github.com/umputun/remark/backend/app/store"
)
const maxRssItems = 20
@@ -8,7 +8,7 @@ import (
"time"
"github.com/stretchr/testify/assert"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/backend/app/store"
)
func TestServer_RssPost(t *testing.T) {
@@ -7,8 +7,8 @@ import (
"net/http"
"strings"
"github.com/umputun/remark/app/rest"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/backend/app/rest"
"github.com/umputun/remark/backend/app/store"
)
// Authenticator is top level auth object providing middlewares
@@ -7,7 +7,7 @@ import (
jwt "github.com/dgrijalva/jwt-go"
"github.com/pkg/errors"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/backend/app/store"
)
// JWT wraps jwt operations
@@ -11,7 +11,7 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/backend/app/store"
)
var testJwtValid = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjI3ODkxOTE4MjIsImp0aSI6InJhbmRvbSBpZCI" +
@@ -16,9 +16,9 @@ import (
"github.com/go-chi/render"
"golang.org/x/oauth2"
"github.com/umputun/remark/app/rest"
"github.com/umputun/remark/app/rest/proxy"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/backend/app/rest"
"github.com/umputun/remark/backend/app/rest/proxy"
"github.com/umputun/remark/backend/app/store"
)
// Provider represents oauth2 provider
@@ -15,7 +15,7 @@ import (
"github.com/stretchr/testify/require"
"golang.org/x/oauth2"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/backend/app/store"
)
func TestLogin(t *testing.T) {
@@ -9,7 +9,7 @@ import (
"golang.org/x/oauth2/google"
"golang.org/x/oauth2/yandex"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/backend/app/store"
)
// NewGoogle makes google oauth2 provider
@@ -4,7 +4,7 @@ import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/backend/app/store"
)
func TestProviders_NewGoogle(t *testing.T) {
@@ -5,7 +5,7 @@ import (
"strings"
"github.com/pkg/errors"
"github.com/umputun/remark/app/rest"
"github.com/umputun/remark/backend/app/rest"
)
// LoadingCache defines interface for caching
@@ -5,8 +5,8 @@ import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/umputun/remark/app/rest"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/backend/app/rest"
"github.com/umputun/remark/backend/app/store"
)
func TestCache_Keys(t *testing.T) {
@@ -9,7 +9,7 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/backend/app/store"
)
func TestSendErrorJSON(t *testing.T) {
@@ -11,8 +11,8 @@ import (
"github.com/go-chi/chi"
"github.com/pkg/errors"
"github.com/umputun/remark/app/rest"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/backend/app/rest"
"github.com/umputun/remark/backend/app/store"
)
// Avatar provides file-system store and http handler for avatars
@@ -23,7 +23,7 @@ import (
"github.com/pkg/errors"
"golang.org/x/image/draw"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/backend/app/store"
)
// AvatarStore defines interface to store and serve avatars
@@ -15,7 +15,7 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/backend/app/store"
)
func TestAvatar_Put(t *testing.T) {
@@ -11,7 +11,7 @@ import (
"github.com/PuerkitoBio/goquery"
"github.com/go-chi/chi"
"github.com/pkg/errors"
"github.com/umputun/remark/app/rest"
"github.com/umputun/remark/backend/app/rest"
)
// Image extracts image src from comment's html and provides proxy for them

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

@@ -5,7 +5,7 @@ import (
"strings"
"time"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/backend/app/store"
)
// Tree is formatter making tree from the list of comments
@@ -11,7 +11,7 @@ import (
"github.com/stretchr/testify/assert"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/backend/app/store"
)
func TestMakeTree(t *testing.T) {
@@ -5,7 +5,7 @@ import (
"errors"
"net/http"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/backend/app/store"
)
type contextKey string
@@ -5,7 +5,7 @@ import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/backend/app/store"
)
func TestGetUserInfo(t *testing.T) {
@@ -10,7 +10,7 @@ import (
"github.com/coreos/bbolt"
"github.com/pkg/errors"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/backend/app/store"
)
// BoltDB implements store.Interface, represents multiple sites with multiplexing to different bolt dbs. Thread safe.
@@ -10,7 +10,7 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/backend/app/store"
)
var testDb = "test-remark.db"
@@ -8,7 +8,7 @@ import (
"github.com/coreos/bbolt"
"github.com/pkg/errors"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/backend/app/store"
)
// Delete removes comment, by locator from the store.
@@ -7,7 +7,7 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/backend/app/store"
)
func TestBoltAdmin_Delete(t *testing.T) {
@@ -6,7 +6,7 @@ import (
"sort"
"strings"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/backend/app/store"
)
//go:generate sh -c "mockery -inpkg -name Interface -print > file.tmp && mv file.tmp engine_mock.go"
@@ -6,7 +6,7 @@ import (
"github.com/stretchr/testify/assert"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/backend/app/store"
)
func TestEngine_sortComments(t *testing.T) {
@@ -7,8 +7,8 @@ import (
"github.com/google/uuid"
"github.com/pkg/errors"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/app/store/engine"
"github.com/umputun/remark/backend/app/store"
"github.com/umputun/remark/backend/app/store/engine"
)
// DataStore wraps store.Interface with additional methods
@@ -14,8 +14,8 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/umputun/remark/app/store"
"github.com/umputun/remark/app/store/engine"
"github.com/umputun/remark/backend/app/store"
"github.com/umputun/remark/backend/app/store/engine"
)
var testDb = "/tmp/test-remark.db"
View File

Some files were not shown because too many files have changed in this diff Show More