Rename backend/backend in backend/models

This commit is contained in:
Lucas BEE 2019-06-20 12:56:10 +00:00
parent 9c429ba3d4
commit 07eefe1870
30 changed files with 132 additions and 132 deletions

View File

@ -5,8 +5,8 @@ import (
"fmt"
"net/http"
"git.quimbo.fr/odwrtw/canape/backend/backend"
"git.quimbo.fr/odwrtw/canape/backend/config"
"git.quimbo.fr/odwrtw/canape/backend/models"
"git.quimbo.fr/odwrtw/canape/backend/web"
"github.com/gorilla/mux"
@ -21,7 +21,7 @@ func GetUsersHandler(env *web.Env, w http.ResponseWriter, r *http.Request) error
log.Debug("Getting users")
users, err := backend.GetAllUsers(env.Database)
users, err := models.GetAllUsers(env.Database)
if err != nil {
return env.RenderError(w, err)
}
@ -39,7 +39,7 @@ func GenerateUserToken(env *web.Env, w http.ResponseWriter, r *http.Request) err
vars := mux.Vars(r)
username := vars["username"]
user, err := backend.GetUser(env.Database, username)
user, err := models.GetUser(env.Database, username)
if err != nil {
return err
}
@ -79,7 +79,7 @@ func UpdateUserHandler(env *web.Env, w http.ResponseWriter, r *http.Request) err
return env.RenderError(w, fmt.Errorf("Empty user id"))
}
user, err := backend.GetUserByID(env.Database, data.ID)
user, err := models.GetUserByID(env.Database, data.ID)
if err != nil {
return err
}

View File

@ -6,7 +6,7 @@ import (
"strings"
"time"
"git.quimbo.fr/odwrtw/canape/backend/backend"
"git.quimbo.fr/odwrtw/canape/backend/models"
"git.quimbo.fr/odwrtw/canape/backend/tokens"
jwt "github.com/dgrijalva/jwt-go"
"github.com/jmoiron/sqlx"
@ -57,7 +57,7 @@ func (a *Authorizer) GenHash(password string) (string, error) {
}
// GenerateJWTToken generates a JWT token for a user
func (a *Authorizer) GenerateJWTToken(r *http.Request, u *backend.User) (*tokens.Token, error) {
func (a *Authorizer) GenerateJWTToken(r *http.Request, u *models.User) (*tokens.Token, error) {
// Create a jwt token
jwtToken := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{
// Not before
@ -85,7 +85,7 @@ func (a *Authorizer) GenerateJWTToken(r *http.Request, u *backend.User) (*tokens
// Login cheks password and creates a jwt token
func (a *Authorizer) Login(r *http.Request, username, password string) (*tokens.Token, error) {
u, err := backend.GetUser(a.db, username)
u, err := models.GetUser(a.db, username)
if err != nil {
return nil, err
}
@ -109,7 +109,7 @@ func (a *Authorizer) Login(r *http.Request, username, password string) (*tokens.
}
// CurrentUser returns the logged in username from session and verifies the token
func (a *Authorizer) CurrentUser(rw http.ResponseWriter, req *http.Request) (*backend.User, error) {
func (a *Authorizer) CurrentUser(rw http.ResponseWriter, req *http.Request) (*models.User, error) {
var tokenStr string
h := req.Header.Get("Authorization")
if h != "" {
@ -151,7 +151,7 @@ func (a *Authorizer) CurrentUser(rw http.ResponseWriter, req *http.Request) (*ba
}
// Get the user
u, err := backend.GetUser(a.db, tokenClaims.Username)
u, err := models.GetUser(a.db, tokenClaims.Username)
if err != nil {
return nil, err
}

View File

@ -5,7 +5,7 @@ import (
"net"
"net/http"
"git.quimbo.fr/odwrtw/canape/backend/backend"
"git.quimbo.fr/odwrtw/canape/backend/models"
"github.com/sirupsen/logrus"
)
@ -90,7 +90,7 @@ func (m *MiddlewareRole) ServeHTTP(w http.ResponseWriter, r *http.Request, next
}
// GetCurrentUser gets the current user from the request context
func GetCurrentUser(r *http.Request, log *logrus.Entry) *backend.User {
func GetCurrentUser(r *http.Request, log *logrus.Entry) *models.User {
log.Debug("getting user from context")
ctxKey := authContextKey("auth.user")
@ -98,7 +98,7 @@ func GetCurrentUser(r *http.Request, log *logrus.Entry) *backend.User {
if u == nil {
return nil
}
user, ok := u.(*backend.User)
user, ok := u.(*models.User)
if !ok {
panic("invalid user type")
}

View File

@ -4,7 +4,7 @@ import (
"reflect"
"time"
"git.quimbo.fr/odwrtw/canape/backend/backend"
"git.quimbo.fr/odwrtw/canape/backend/models"
"github.com/odwrtw/papi"
"github.com/sirupsen/logrus"
)
@ -12,7 +12,7 @@ import (
// TorrentNotifier is a struct implementing the Notifier interface
type TorrentNotifier struct {
*Notifier
user *backend.User
user *models.User
client *papi.Client
torrents []papi.Torrent
log *logrus.Entry

View File

@ -3,7 +3,7 @@ package extmedias
import (
"fmt"
"git.quimbo.fr/odwrtw/canape/backend/backend"
"git.quimbo.fr/odwrtw/canape/backend/models"
"git.quimbo.fr/odwrtw/canape/backend/movies"
"git.quimbo.fr/odwrtw/canape/backend/shows"
"git.quimbo.fr/odwrtw/canape/backend/web"
@ -70,7 +70,7 @@ func GetMediaIDs(env *web.Env, mediaType string, source string, category string)
log.Debugf("got %d medias from %s", len(ids), source)
// Upserts the new Media entry
media := &backend.Media{
media := &models.Media{
Type: mediaType,
Source: source,
Category: category,
@ -117,7 +117,7 @@ func RefreshShows(env *web.Env) {
}
// Iterate over all the wishlisted shows
wishlistedList, err := backend.GetAllWishlistedShows(env.Database)
wishlistedList, err := models.GetAllWishlistedShows(env.Database)
if err != nil {
env.Log.Warnf("error while getting list of wishlisted shows: %s", err)
return
@ -183,7 +183,7 @@ func RefreshMovies(env *web.Env) {
}
// Iterate over all the wishlisted movies
wishlistedList, err := backend.GetAllWishlistedMovies(env.Database)
wishlistedList, err := models.GetAllWishlistedMovies(env.Database)
if err != nil {
env.Log.Warnf("error while getting list of wishlisted movies %q", err)
return
@ -227,7 +227,7 @@ func GetShowOptions(env *web.Env) (map[string][]string, error) {
"function": "extmedias.GetShowOptions",
})
log.Debugf("getting explorer show options")
e, err := backend.GetMediaOptions(env.Database, "show")
e, err := models.GetMediaOptions(env.Database, "show")
if err != nil {
return nil, err
}
@ -240,7 +240,7 @@ func GetMovieOptions(env *web.Env) (map[string][]string, error) {
"function": "extmedias.GetMovieOptions",
})
log.Debugf("getting explorer movie options")
e, err := backend.GetMediaOptions(env.Database, "movie")
e, err := models.GetMediaOptions(env.Database, "movie")
if err != nil {
return nil, err
}

View File

@ -4,7 +4,7 @@ import (
"net/http"
"git.quimbo.fr/odwrtw/canape/backend/auth"
"git.quimbo.fr/odwrtw/canape/backend/backend"
"git.quimbo.fr/odwrtw/canape/backend/models"
"git.quimbo.fr/odwrtw/canape/backend/movies"
"git.quimbo.fr/odwrtw/canape/backend/shows"
"git.quimbo.fr/odwrtw/canape/backend/web"
@ -46,14 +46,14 @@ func RefreshShowsHandler(env *web.Env, w http.ResponseWriter, r *http.Request) e
}
// GetMovies get some movies
func GetMovies(env *web.Env, user *backend.User, source string, category string) ([]*movies.Movie, error) {
func GetMovies(env *web.Env, user *models.User, source string, category string) ([]*movies.Movie, error) {
log := env.Log.WithFields(logrus.Fields{
"source": source,
"category": category,
"function": "extmedias.GetMovies",
})
log.Debugf("getting movies")
media, err := backend.Explore(env.Database, "movie", source, category)
media, err := models.Explore(env.Database, "movie", source, category)
if err != nil {
return nil, err
}
@ -71,7 +71,7 @@ func GetMovies(env *web.Env, user *backend.User, source string, category string)
}
// Get the user's wishlisted movies
moviesWishlist, err := backend.GetMovieWishlist(env.Database, user.ID)
moviesWishlist, err := models.GetMovieWishlist(env.Database, user.ID)
if err != nil {
return nil, err
}
@ -105,7 +105,7 @@ func GetMovies(env *web.Env, user *backend.User, source string, category string)
}
// GetShows get some shows
func GetShows(env *web.Env, user *backend.User, source string, category string, force bool) ([]*shows.Show, error) {
func GetShows(env *web.Env, user *models.User, source string, category string, force bool) ([]*shows.Show, error) {
log := env.Log.WithFields(logrus.Fields{
"source": source,
"category": category,
@ -113,7 +113,7 @@ func GetShows(env *web.Env, user *backend.User, source string, category string,
})
log.Debugf("getting shows")
// Get the user's polochon config
media, err := backend.Explore(env.Database, "show", source, category)
media, err := models.Explore(env.Database, "show", source, category)
if err != nil {
return nil, err
}
@ -131,7 +131,7 @@ func GetShows(env *web.Env, user *backend.User, source string, category string,
}
// Get the user's wishlisted shows
wShows, err := backend.GetShowWishlist(env.Database, user.ID)
wShows, err := models.GetShowWishlist(env.Database, user.ID)
if err != nil {
return nil, err
}

View File

@ -6,7 +6,7 @@ import (
"os"
"git.quimbo.fr/odwrtw/canape/backend/auth"
"git.quimbo.fr/odwrtw/canape/backend/backend"
"git.quimbo.fr/odwrtw/canape/backend/models"
"git.quimbo.fr/odwrtw/canape/backend/config"
extmedias "git.quimbo.fr/odwrtw/canape/backend/external_medias"
"git.quimbo.fr/odwrtw/canape/backend/ratings"
@ -43,7 +43,7 @@ func main() {
if err != nil {
log.Panic(err)
}
backend := &backend.Backend{Database: db}
backend := &models.Backend{Database: db}
// Generate auth params
authParams := auth.Params{

View File

@ -1,4 +1,4 @@
package backend
package models
import (
"github.com/jmoiron/sqlx"

View File

@ -1,4 +1,4 @@
package backend
package models
import (
"errors"

View File

@ -1,4 +1,4 @@
package backend
package models
import (
"database/sql"

View File

@ -1,4 +1,4 @@
package backend
package models
import (
"time"

View File

@ -1,4 +1,4 @@
package backend
package models
import (
"github.com/jmoiron/sqlx"

View File

@ -1,4 +1,4 @@
package backend
package models
import (
"time"

View File

@ -1,4 +1,4 @@
package backend
package models
import (
"database/sql"

View File

@ -1,4 +1,4 @@
package backend
package models
import (
"fmt"

View File

@ -1,4 +1,4 @@
package backend
package models
import (
"fmt"

View File

@ -1,4 +1,4 @@
package backend
package models
import (
"database/sql"

View File

@ -1,4 +1,4 @@
package backend
package models
import (
"fmt"

View File

@ -1,4 +1,4 @@
package backend
package models
import (
"fmt"

View File

@ -1,4 +1,4 @@
package backend
package models
import (
"database/sql"

View File

@ -1,4 +1,4 @@
package backend
package models
import (
"database/sql"

View File

@ -6,8 +6,8 @@ import (
"net/http"
"git.quimbo.fr/odwrtw/canape/backend/auth"
"git.quimbo.fr/odwrtw/canape/backend/backend"
"git.quimbo.fr/odwrtw/canape/backend/config"
"git.quimbo.fr/odwrtw/canape/backend/models"
"git.quimbo.fr/odwrtw/canape/backend/subtitles"
"git.quimbo.fr/odwrtw/canape/backend/web"
"github.com/gorilla/mux"
@ -78,7 +78,7 @@ func RefreshMovieHandler(env *web.Env, w http.ResponseWriter, r *http.Request) e
}
// Check if the movie is wishlisted
isWishlisted, err := backend.IsMovieWishlisted(env.Database, user.ID, id)
isWishlisted, err := models.IsMovieWishlisted(env.Database, user.ID, id)
if err != nil {
log.Println("Error getting wishlisted movie ", err)
}
@ -119,7 +119,7 @@ func SearchMovie(env *web.Env, w http.ResponseWriter, r *http.Request) error {
}
// Get the user's wishlisted movies
moviesWishlist, err := backend.GetMovieWishlist(env.Database, user.ID)
moviesWishlist, err := models.GetMovieWishlist(env.Database, user.ID)
if err != nil {
return env.RenderError(w, err)
}
@ -205,7 +205,7 @@ func AddToWishlist(env *web.Env, w http.ResponseWriter, r *http.Request) error {
user := auth.GetCurrentUser(r, env.Log)
if err := backend.AddMovieToWishlist(env.Database, user.ID, id); err != nil {
if err := models.AddMovieToWishlist(env.Database, user.ID, id); err != nil {
return env.RenderError(w, err)
}
@ -219,7 +219,7 @@ func DeleteFromWishlist(env *web.Env, w http.ResponseWriter, r *http.Request) er
user := auth.GetCurrentUser(r, env.Log)
if err := backend.DeleteMovieFromWishlist(env.Database, user.ID, id); err != nil {
if err := models.DeleteMovieFromWishlist(env.Database, user.ID, id); err != nil {
return env.RenderError(w, err)
}
@ -243,7 +243,7 @@ func GetWishlistHandler(env *web.Env, w http.ResponseWriter, r *http.Request) er
}
// Get the user's wishlisted movies
moviesWishlist, err := backend.GetMovieWishlist(env.Database, user.ID)
moviesWishlist, err := models.GetMovieWishlist(env.Database, user.ID)
if err != nil {
return env.RenderError(w, err)
}

View File

@ -8,7 +8,7 @@ import (
"path/filepath"
"time"
"git.quimbo.fr/odwrtw/canape/backend/backend"
"git.quimbo.fr/odwrtw/canape/backend/models"
"git.quimbo.fr/odwrtw/canape/backend/subtitles"
"git.quimbo.fr/odwrtw/canape/backend/web"
"github.com/odwrtw/papi"
@ -151,7 +151,7 @@ func (m *Movie) Refresh(env *web.Env, detailers []polochon.Detailer) error {
}
// If found, update in database
return backend.UpsertMovie(env.Database, m.Movie)
return models.UpsertMovie(env.Database, m.Movie)
}
// GetTorrents retrieves torrents for the movie with the given torrenters
@ -220,7 +220,7 @@ func (m *Movie) RefreshTorrents(env *web.Env, torrenters []polochon.Torrenter) e
// Update them in database
for _, t := range m.Movie.Torrents {
err = backend.UpsertMovieTorrent(env.Database, &t, m.ImdbID)
err = models.UpsertMovieTorrent(env.Database, &t, m.ImdbID)
if err != nil {
log.Error("error while adding torrent", err)
continue
@ -250,7 +250,7 @@ func (m *Movie) PosterURL() string {
}
// getPolochonMovies returns an array of the user's polochon movies
func getPolochonMovies(user *backend.User, env *web.Env) ([]*Movie, error) {
func getPolochonMovies(user *models.User, env *web.Env) ([]*Movie, error) {
movies := []*Movie{}
// Create a papi client
@ -266,7 +266,7 @@ func getPolochonMovies(user *backend.User, env *web.Env) ([]*Movie, error) {
}
// Get the user's wishlisted movies
moviesWishlist, err := backend.GetMovieWishlist(env.Database, user.ID)
moviesWishlist, err := models.GetMovieWishlist(env.Database, user.ID)
if err != nil {
return movies, err
}

View File

@ -6,7 +6,7 @@ import (
"net/http"
"git.quimbo.fr/odwrtw/canape/backend/auth"
"git.quimbo.fr/odwrtw/canape/backend/backend"
"git.quimbo.fr/odwrtw/canape/backend/models"
"git.quimbo.fr/odwrtw/canape/backend/web"
"github.com/gorilla/mux"
"github.com/sirupsen/logrus"
@ -20,7 +20,7 @@ func GetPublicPolochonsHandler(env *web.Env, w http.ResponseWriter, r *http.Requ
log.Debug("Getting public polochons")
polochons, err := backend.GetAllPolochons(env.Database)
polochons, err := models.GetAllPolochons(env.Database)
if err != nil {
return env.RenderError(w, err)
}
@ -53,13 +53,13 @@ func GetPolochonsHandler(env *web.Env, w http.ResponseWriter, r *http.Request) e
log.Debug("Getting polochons")
polochons, err := backend.GetAllPolochonsByUser(env.Database, user.ID)
polochons, err := models.GetAllPolochonsByUser(env.Database, user.ID)
if err != nil {
return env.RenderError(w, err)
}
for _, p := range polochons {
users, err := backend.GetPolochonUsers(env.Database, p.ID)
users, err := models.GetPolochonUsers(env.Database, p.ID)
if err != nil {
return env.RenderError(w, err)
}
@ -97,7 +97,7 @@ func NewPolochonHandler(env *web.Env, w http.ResponseWriter, r *http.Request) er
}
log.Debugf("creating new polochon ...")
p := backend.Polochon{
p := models.Polochon{
Name: data.Name,
URL: data.URL,
Token: data.Token,
@ -124,7 +124,7 @@ func EditPolochonHandler(env *web.Env, w http.ResponseWriter, r *http.Request) e
// Get the polochon
vars := mux.Vars(r)
id := vars["id"]
p, err := backend.GetPolochonByID(env.Database, id)
p, err := models.GetPolochonByID(env.Database, id)
if err != nil {
return env.RenderError(w, err)
}
@ -192,7 +192,7 @@ func PolochonActivateUser(env *web.Env, w http.ResponseWriter, r *http.Request,
// Get the polochon
vars := mux.Vars(r)
id := vars["id"]
p, err := backend.GetPolochonByID(env.Database, id)
p, err := models.GetPolochonByID(env.Database, id)
if err != nil {
return env.RenderError(w, err)
}
@ -204,7 +204,7 @@ func PolochonActivateUser(env *web.Env, w http.ResponseWriter, r *http.Request,
// Get the user
userID := vars["user_id"]
u, err := backend.GetUserByID(env.Database, userID)
u, err := models.GetUserByID(env.Database, userID)
if err != nil {
return env.RenderError(w, err)
}

View File

@ -12,7 +12,7 @@ import (
"github.com/sirupsen/logrus"
"git.quimbo.fr/odwrtw/canape/backend/backend"
"git.quimbo.fr/odwrtw/canape/backend/models"
"git.quimbo.fr/odwrtw/canape/backend/web"
)
@ -74,12 +74,12 @@ func Refresh(env *web.Env) error {
continue
}
videoRating := &backend.ImdbRating{
videoRating := &models.ImdbRating{
ImdbID: elmts[0],
Rating: float32(rating),
Votes: int(numVote),
}
err = backend.TxUpsertImdbRating(tx, videoRating)
err = models.TxUpsertImdbRating(tx, videoRating)
if err != nil {
log.WithFields(logrus.Fields{
"error": err,

View File

@ -2,7 +2,7 @@ package main
import (
admin "git.quimbo.fr/odwrtw/canape/backend/admins"
"git.quimbo.fr/odwrtw/canape/backend/backend"
"git.quimbo.fr/odwrtw/canape/backend/models"
"git.quimbo.fr/odwrtw/canape/backend/events"
extmedias "git.quimbo.fr/odwrtw/canape/backend/external_medias"
"git.quimbo.fr/odwrtw/canape/backend/movies"
@ -18,72 +18,72 @@ func setupRoutes(env *web.Env) {
// User's route
env.Handle("/users/login", users.LoginPOSTHandler).Methods("POST")
env.Handle("/users/signup", users.SignupPOSTHandler).Methods("POST")
env.Handle("/users/details", users.DetailsHandler).WithRole(backend.UserRole).Methods("GET")
env.Handle("/users/edit", users.EditHandler).WithRole(backend.UserRole).Methods("POST")
env.Handle("/users/tokens", users.GetTokensHandler).WithRole(backend.UserRole).Methods("GET")
env.Handle("/users/tokens/{token}", users.EditTokenHandler).WithRole(backend.UserRole).Methods("POST")
env.Handle("/users/tokens/{token}", users.DeleteTokenHandler).WithRole(backend.UserRole).Methods("DELETE")
env.Handle("/users/modules/status", users.GetModulesStatus).WithRole(backend.UserRole).Methods("GET")
env.Handle("/users/polochons", polochons.GetPolochonsHandler).WithRole(backend.UserRole).Methods("GET")
env.Handle("/users/details", users.DetailsHandler).WithRole(models.UserRole).Methods("GET")
env.Handle("/users/edit", users.EditHandler).WithRole(models.UserRole).Methods("POST")
env.Handle("/users/tokens", users.GetTokensHandler).WithRole(models.UserRole).Methods("GET")
env.Handle("/users/tokens/{token}", users.EditTokenHandler).WithRole(models.UserRole).Methods("POST")
env.Handle("/users/tokens/{token}", users.DeleteTokenHandler).WithRole(models.UserRole).Methods("DELETE")
env.Handle("/users/modules/status", users.GetModulesStatus).WithRole(models.UserRole).Methods("GET")
env.Handle("/users/polochons", polochons.GetPolochonsHandler).WithRole(models.UserRole).Methods("GET")
// Polochon's route
env.Handle("/polochons", polochons.GetPublicPolochonsHandler).Methods("GET")
env.Handle("/polochons", polochons.NewPolochonHandler).WithRole(backend.UserRole).Methods("POST")
env.Handle("/polochons/{id}", polochons.EditPolochonHandler).WithRole(backend.UserRole).Methods("POST")
env.Handle("/polochons/{id}/users/{user_id}", polochons.PolochonActivateUserHandler).WithRole(backend.UserRole).Methods("POST")
env.Handle("/polochons/{id}/users/{user_id}", polochons.PolochonDeactivateUserHandler).WithRole(backend.UserRole).Methods("DELETE")
env.Handle("/polochons", polochons.NewPolochonHandler).WithRole(models.UserRole).Methods("POST")
env.Handle("/polochons/{id}", polochons.EditPolochonHandler).WithRole(models.UserRole).Methods("POST")
env.Handle("/polochons/{id}/users/{user_id}", polochons.PolochonActivateUserHandler).WithRole(models.UserRole).Methods("POST")
env.Handle("/polochons/{id}/users/{user_id}", polochons.PolochonDeactivateUserHandler).WithRole(models.UserRole).Methods("DELETE")
// Movies routes
env.Handle("/movies/polochon", movies.PolochonMoviesHandler).WithRole(backend.UserRole).Methods("GET")
env.Handle("/movies/explore", extmedias.ExploreMovies).WithRole(backend.UserRole).Methods("GET")
env.Handle("/movies/explore/options", extmedias.MovieExplorerOptions).WithRole(backend.UserRole).Methods("GET")
env.Handle("/movies/search/{search}", movies.SearchMovie).WithRole(backend.UserRole).Methods("GET")
env.Handle("/movies/{id:tt[0-9]+}", movies.PolochonDeleteHandler).WithRole(backend.UserRole).Methods("DELETE")
env.Handle("/movies/{id:tt[0-9]+}/refresh", movies.RefreshMovieHandler).WithRole(backend.UserRole).Methods("POST")
env.Handle("/movies/{id:tt[0-9]+}/subtitles/{lang}", movies.DownloadVVTSubtitle).WithRole(backend.UserRole).Methods("GET")
env.Handle("/movies/{id:tt[0-9]+}/subtitles/refresh", movies.RefreshMovieSubtitlesHandler).WithRole(backend.UserRole).Methods("POST")
env.Handle("/movies/refresh", extmedias.RefreshMoviesHandler).WithRole(backend.AdminRole).Methods("POST")
env.Handle("/movies/polochon", movies.PolochonMoviesHandler).WithRole(models.UserRole).Methods("GET")
env.Handle("/movies/explore", extmedias.ExploreMovies).WithRole(models.UserRole).Methods("GET")
env.Handle("/movies/explore/options", extmedias.MovieExplorerOptions).WithRole(models.UserRole).Methods("GET")
env.Handle("/movies/search/{search}", movies.SearchMovie).WithRole(models.UserRole).Methods("GET")
env.Handle("/movies/{id:tt[0-9]+}", movies.PolochonDeleteHandler).WithRole(models.UserRole).Methods("DELETE")
env.Handle("/movies/{id:tt[0-9]+}/refresh", movies.RefreshMovieHandler).WithRole(models.UserRole).Methods("POST")
env.Handle("/movies/{id:tt[0-9]+}/subtitles/{lang}", movies.DownloadVVTSubtitle).WithRole(models.UserRole).Methods("GET")
env.Handle("/movies/{id:tt[0-9]+}/subtitles/refresh", movies.RefreshMovieSubtitlesHandler).WithRole(models.UserRole).Methods("POST")
env.Handle("/movies/refresh", extmedias.RefreshMoviesHandler).WithRole(models.AdminRole).Methods("POST")
// Shows routes
env.Handle("/shows/polochon", shows.PolochonShowsHandler).WithRole(backend.UserRole).Methods("GET")
env.Handle("/shows/explore", extmedias.ExploreShows).WithRole(backend.UserRole).Methods("GET")
env.Handle("/shows/explore/options", extmedias.ShowExplorerOptions).WithRole(backend.UserRole).Methods("GET")
env.Handle("/shows/search/{search}", shows.SearchShow).WithRole(backend.UserRole).Methods("GET")
env.Handle("/shows/{id:tt[0-9]+}", shows.GetDetailsHandler).WithRole(backend.UserRole).Methods("GET")
env.Handle("/shows/{id:tt[0-9]+}/refresh", shows.RefreshShowHandler).WithRole(backend.UserRole).Methods("POST")
env.Handle("/shows/{id:tt[0-9]+}/seasons/{season:[0-9]+}/episodes/{episode:[0-9]+}", shows.RefreshEpisodeHandler).WithRole(backend.UserRole).Methods("POST")
env.Handle("/shows/{id:tt[0-9]+}/seasons/{season:[0-9]+}/episodes/{episode:[0-9]+}/subtitles/refresh", shows.RefreshEpisodeSubtitlesHandler).WithRole(backend.UserRole).Methods("POST")
env.Handle("/shows/{id:tt[0-9]+}/seasons/{season:[0-9]+}/episodes/{episode:[0-9]+}/subtitles/{lang}", shows.DownloadVVTSubtitle).WithRole(backend.UserRole).Methods("GET")
env.Handle("/shows/refresh", extmedias.RefreshShowsHandler).WithRole(backend.AdminRole).Methods("POST")
env.Handle("/shows/polochon", shows.PolochonShowsHandler).WithRole(models.UserRole).Methods("GET")
env.Handle("/shows/explore", extmedias.ExploreShows).WithRole(models.UserRole).Methods("GET")
env.Handle("/shows/explore/options", extmedias.ShowExplorerOptions).WithRole(models.UserRole).Methods("GET")
env.Handle("/shows/search/{search}", shows.SearchShow).WithRole(models.UserRole).Methods("GET")
env.Handle("/shows/{id:tt[0-9]+}", shows.GetDetailsHandler).WithRole(models.UserRole).Methods("GET")
env.Handle("/shows/{id:tt[0-9]+}/refresh", shows.RefreshShowHandler).WithRole(models.UserRole).Methods("POST")
env.Handle("/shows/{id:tt[0-9]+}/seasons/{season:[0-9]+}/episodes/{episode:[0-9]+}", shows.RefreshEpisodeHandler).WithRole(models.UserRole).Methods("POST")
env.Handle("/shows/{id:tt[0-9]+}/seasons/{season:[0-9]+}/episodes/{episode:[0-9]+}/subtitles/refresh", shows.RefreshEpisodeSubtitlesHandler).WithRole(models.UserRole).Methods("POST")
env.Handle("/shows/{id:tt[0-9]+}/seasons/{season:[0-9]+}/episodes/{episode:[0-9]+}/subtitles/{lang}", shows.DownloadVVTSubtitle).WithRole(models.UserRole).Methods("GET")
env.Handle("/shows/refresh", extmedias.RefreshShowsHandler).WithRole(models.AdminRole).Methods("POST")
env.Handle("/ratings/refresh", ratings.RefreshHandler).WithRole(backend.AdminRole).Methods("POST")
env.Handle("/ratings/refresh", ratings.RefreshHandler).WithRole(models.AdminRole).Methods("POST")
// Wishlist routes for shows
env.Handle("/wishlist/shows", shows.GetWishlistHandler).WithRole(backend.UserRole).Methods("GET")
env.Handle("/wishlist/shows/{id:tt[0-9]+}", shows.AddToWishlist).WithRole(backend.UserRole).Methods("POST")
env.Handle("/wishlist/shows/{id:tt[0-9]+}", shows.DeleteFromWishlist).WithRole(backend.UserRole).Methods("DELETE")
env.Handle("/wishlist/shows", shows.GetWishlistHandler).WithRole(models.UserRole).Methods("GET")
env.Handle("/wishlist/shows/{id:tt[0-9]+}", shows.AddToWishlist).WithRole(models.UserRole).Methods("POST")
env.Handle("/wishlist/shows/{id:tt[0-9]+}", shows.DeleteFromWishlist).WithRole(models.UserRole).Methods("DELETE")
// Wishlist routes for movies
env.Handle("/wishlist/movies", movies.GetWishlistHandler).WithRole(backend.UserRole).Methods("GET")
env.Handle("/wishlist/movies/{id:tt[0-9]+}", movies.AddToWishlist).WithRole(backend.UserRole).Methods("POST")
env.Handle("/wishlist/movies/{id:tt[0-9]+}", movies.DeleteFromWishlist).WithRole(backend.UserRole).Methods("DELETE")
env.Handle("/wishlist/movies", movies.GetWishlistHandler).WithRole(models.UserRole).Methods("GET")
env.Handle("/wishlist/movies/{id:tt[0-9]+}", movies.AddToWishlist).WithRole(models.UserRole).Methods("POST")
env.Handle("/wishlist/movies/{id:tt[0-9]+}", movies.DeleteFromWishlist).WithRole(models.UserRole).Methods("DELETE")
// Torrents routes
env.Handle("/torrents", torrents.DownloadHandler).WithRole(backend.UserRole).Methods("POST")
env.Handle("/torrents", torrents.ListHandler).WithRole(backend.UserRole).Methods("GET")
env.Handle("/torrents/{id}", torrents.RemoveHandler).WithRole(backend.UserRole).Methods("DELETE")
env.Handle("/torrents/search/{type}/{search}", torrents.SearchHandler).WithRole(backend.UserRole).Methods("GET")
env.Handle("/torrents", torrents.DownloadHandler).WithRole(models.UserRole).Methods("POST")
env.Handle("/torrents", torrents.ListHandler).WithRole(models.UserRole).Methods("GET")
env.Handle("/torrents/{id}", torrents.RemoveHandler).WithRole(models.UserRole).Methods("DELETE")
env.Handle("/torrents/search/{type}/{search}", torrents.SearchHandler).WithRole(models.UserRole).Methods("GET")
// Route to refresh all movies and shows
env.Handle("/refresh", extmedias.RefreshHandler).WithRole(backend.AdminRole).Methods("POST")
env.Handle("/refresh", extmedias.RefreshHandler).WithRole(models.AdminRole).Methods("POST")
// Route to handle websocket events
env.Handle("/events", events.WsHandler).WithRole(backend.UserRole).Methods("GET")
env.Handle("/events", events.WsHandler).WithRole(models.UserRole).Methods("GET")
// Admin routes
env.Handle("/admins/users", admin.GetUsersHandler).WithRole(backend.AdminRole).Methods("GET")
env.Handle("/admins/users", admin.UpdateUserHandler).WithRole(backend.AdminRole).Methods("POST")
env.Handle("/admins/stats", admin.GetStatsHandler).WithRole(backend.AdminRole).Methods("GET")
env.Handle("/admins/tokens/{username}", admin.GenerateUserToken).WithRole(backend.AdminRole).Methods("POST")
env.Handle("/admins/modules", admin.GetModulesStatuses).WithRole(backend.AdminRole).Methods("GET")
env.Handle("/admins/users", admin.GetUsersHandler).WithRole(models.AdminRole).Methods("GET")
env.Handle("/admins/users", admin.UpdateUserHandler).WithRole(models.AdminRole).Methods("POST")
env.Handle("/admins/stats", admin.GetStatsHandler).WithRole(models.AdminRole).Methods("GET")
env.Handle("/admins/tokens/{username}", admin.GenerateUserToken).WithRole(models.AdminRole).Methods("POST")
env.Handle("/admins/modules", admin.GetModulesStatuses).WithRole(models.AdminRole).Methods("GET")
}

View File

@ -5,7 +5,7 @@ import (
"fmt"
"time"
"git.quimbo.fr/odwrtw/canape/backend/backend"
"git.quimbo.fr/odwrtw/canape/backend/models"
"git.quimbo.fr/odwrtw/canape/backend/subtitles"
"git.quimbo.fr/odwrtw/canape/backend/web"
"github.com/odwrtw/papi"
@ -178,7 +178,7 @@ func RefreshTorrents(env *web.Env, showEpisode *polochon.ShowEpisode, torrenters
// Upsert all the torrents we got
for _, t := range showEpisode.Torrents {
err = backend.UpsertEpisodeTorrent(env.Database, &t, showEpisode.ShowImdbID, showEpisode.Season, showEpisode.Episode)
err = models.UpsertEpisodeTorrent(env.Database, &t, showEpisode.ShowImdbID, showEpisode.Season, showEpisode.Episode)
if err != nil {
log.Errorf("error while adding torrent : %s", err)
continue
@ -197,7 +197,7 @@ func (e *Episode) Refresh(env *web.Env, detailers []polochon.Detailer) error {
return err
}
return backend.UpsertEpisode(env.Database, e.ShowEpisode)
return models.UpsertEpisode(env.Database, e.ShowEpisode)
}
// GetEpisodeDetails retrieves details for the episode with the given detailers

View File

@ -10,7 +10,7 @@ import (
"net/http"
"git.quimbo.fr/odwrtw/canape/backend/auth"
"git.quimbo.fr/odwrtw/canape/backend/backend"
"git.quimbo.fr/odwrtw/canape/backend/models"
"git.quimbo.fr/odwrtw/canape/backend/subtitles"
"git.quimbo.fr/odwrtw/canape/backend/web"
"github.com/gorilla/mux"
@ -38,7 +38,7 @@ func GetDetailsHandler(env *web.Env, w http.ResponseWriter, r *http.Request) err
log.Println("Got error getting show ", err)
}
wShow, err := backend.IsShowWishlisted(env.Database, user.ID, id)
wShow, err := models.IsShowWishlisted(env.Database, user.ID, id)
if err != nil && err != papi.ErrResourceNotFound {
log.Println("Got error getting wishlisted show ", err)
}
@ -84,7 +84,7 @@ func RefreshShowHandler(env *web.Env, w http.ResponseWriter, r *http.Request) er
log.Println("Got error getting show ", err)
}
wShow, err := backend.IsShowWishlisted(env.Database, user.ID, id)
wShow, err := models.IsShowWishlisted(env.Database, user.ID, id)
if err != nil && err != papi.ErrResourceNotFound {
log.Println("Got error getting wishlisted show ", err)
}
@ -146,7 +146,7 @@ func SearchShow(env *web.Env, w http.ResponseWriter, r *http.Request) error {
}
// Get the user's wishlisted shows
wShows, err := backend.GetShowWishlist(env.Database, user.ID)
wShows, err := models.GetShowWishlist(env.Database, user.ID)
if err != nil {
return env.RenderError(w, err)
}
@ -189,7 +189,7 @@ func AddToWishlist(env *web.Env, w http.ResponseWriter, r *http.Request) error {
user := auth.GetCurrentUser(r, env.Log)
if err := backend.AddShowToWishlist(env.Database, user.ID, id, data.Season, data.Episode); err != nil {
if err := models.AddShowToWishlist(env.Database, user.ID, id, data.Season, data.Episode); err != nil {
env.Log.Warnf("Error while adding to db : %s", err)
return env.RenderError(w, err)
}
@ -204,7 +204,7 @@ func DeleteFromWishlist(env *web.Env, w http.ResponseWriter, r *http.Request) er
user := auth.GetCurrentUser(r, env.Log)
if err := backend.DeleteShowFromWishlist(env.Database, user.ID, id); err != nil {
if err := models.DeleteShowFromWishlist(env.Database, user.ID, id); err != nil {
env.Log.Warnf("Error while deleting to db : %s", err)
return env.RenderError(w, err)
}
@ -227,7 +227,7 @@ func GetWishlistHandler(env *web.Env, w http.ResponseWriter, r *http.Request) er
return env.RenderError(w, err)
}
wShows, err := backend.GetShowWishlist(env.Database, user.ID)
wShows, err := models.GetShowWishlist(env.Database, user.ID)
if err != nil {
return env.RenderError(w, err)
}

View File

@ -7,7 +7,7 @@ import (
"path/filepath"
"strings"
"git.quimbo.fr/odwrtw/canape/backend/backend"
"git.quimbo.fr/odwrtw/canape/backend/models"
"git.quimbo.fr/odwrtw/canape/backend/web"
"github.com/odwrtw/papi"
polochon "github.com/odwrtw/polochon/lib"
@ -65,7 +65,7 @@ func New(imdbID string, publicDir, imgURLPrefix string) *Show {
}
// NewWithClient returns a new Show with a polochon ShowConfig
func NewWithClient(imdbID string, client *papi.Client, pShow *papi.Show, wShow *backend.WishedShow, publicDir, imgURLPrefix string) *Show {
func NewWithClient(imdbID string, client *papi.Client, pShow *papi.Show, wShow *models.WishedShow, publicDir, imgURLPrefix string) *Show {
s := &Show{
Show: &polochon.Show{
ImdbID: imdbID,
@ -145,7 +145,7 @@ func (s *Show) Refresh(env *web.Env, detailers []polochon.Detailer) error {
env.Log.Debug("images downloaded")
// If found, update in database
return backend.UpsertShow(env.Database, s.Show)
return models.UpsertShow(env.Database, s.Show)
}
// GetImageURL returns the image URL or the default image if the poster is not yet downloaded
@ -197,7 +197,7 @@ func (s *Show) imgFile(imgType string) string {
}
// getPolochonShows returns all the Shows from the polochon of a user
func getPolochonShows(env *web.Env, user *backend.User) ([]*Show, error) {
func getPolochonShows(env *web.Env, user *models.User) ([]*Show, error) {
shows := []*Show{}
client, err := user.NewPapiClient()
@ -211,7 +211,7 @@ func getPolochonShows(env *web.Env, user *backend.User) ([]*Show, error) {
return shows, err
}
wShows, err := backend.GetShowWishlist(env.Database, user.ID)
wShows, err := models.GetShowWishlist(env.Database, user.ID)
if err != nil {
return shows, err
}

View File

@ -7,8 +7,8 @@ import (
"net/http"
"git.quimbo.fr/odwrtw/canape/backend/auth"
"git.quimbo.fr/odwrtw/canape/backend/backend"
"git.quimbo.fr/odwrtw/canape/backend/config"
"git.quimbo.fr/odwrtw/canape/backend/models"
"git.quimbo.fr/odwrtw/canape/backend/tokens"
"git.quimbo.fr/odwrtw/canape/backend/web"
"github.com/gorilla/mux"
@ -38,7 +38,7 @@ func SignupPOSTHandler(e *web.Env, w http.ResponseWriter, r *http.Request) error
return e.RenderError(w, fmt.Errorf("Passwords missmatch"))
}
user := backend.User{Name: data.Username}
user := models.User{Name: data.Username}
var err error
user.Hash, err = e.Auth.GenHash(data.Password)
@ -72,7 +72,7 @@ func LoginPOSTHandler(e *web.Env, w http.ResponseWriter, r *http.Request) error
token, err := e.Auth.Login(r, data.Username, data.Password)
if err != nil {
if err == auth.ErrInvalidPassword || err == backend.ErrUnknownUser {
if err == auth.ErrInvalidPassword || err == models.ErrUnknownUser {
return e.RenderError(w, fmt.Errorf("Error invalid user or password"))
}
return err