diff --git a/.gitignore b/.gitignore index 91e80e767..cb873721a 100644 --- a/.gitignore +++ b/.gitignore @@ -36,3 +36,4 @@ .slcache /bower-components +/node_modules \ No newline at end of file diff --git a/build.gradle b/build.gradle new file mode 100644 index 000000000..8fa6541b2 --- /dev/null +++ b/build.gradle @@ -0,0 +1,130 @@ +buildscript { + ext { + grailsVersion = project.grailsVersion + } + repositories { + mavenLocal() + maven { url "https://repo.grails.org/grails/core" } + } + dependencies { + classpath "org.grails:grails-gradle-plugin:$grailsVersion" + classpath "com.bertramlabs.plugins:asset-pipeline-gradle:2.6.4" + classpath "gradle.plugin.com.craigburke.gradle:karma-gradle:1.4.3" + classpath "gradle.plugin.com.craigburke.gradle:bower-installer-gradle:2.5.1" + classpath "org.grails.plugins:hibernate4:5.0.5" + classpath "com.bertramlabs.plugins:asset-pipeline-gradle:2.8.2" + classpath "org.grails.plugins:views-gradle:1.0.9" + } +} + +version "0.1" +group "streama" + +apply plugin:"eclipse" +apply plugin:"idea" +apply plugin:"war" +apply plugin:"org.grails.grails-web" +apply plugin:"org.grails.grails-gsp" +apply plugin:"com.craigburke.karma" +apply plugin:"com.craigburke.bower-installer" +apply plugin:"asset-pipeline" +apply plugin:"org.grails.plugins.views-json" + +ext { + grailsVersion = project.grailsVersion + gradleWrapperVersion = project.gradleWrapperVersion +} + +repositories { + mavenLocal() + maven { url "https://repo.grails.org/grails/core" } +} + +dependencyManagement { + imports { + mavenBom "org.grails:grails-bom:$grailsVersion" + } + applyMavenExclusions false +} + +dependencies { + assets "com.craigburke.angular:angular-template-asset-pipeline:2.2.6" + assets "com.craigburke.angular:angular-annotate-asset-pipeline:2.4.0" + assets "com.craigburke:js-closure-wrap-asset-pipeline:1.2.0" + compile "org.springframework.boot:spring-boot-starter-logging" + compile "org.springframework.boot:spring-boot-autoconfigure" + compile "org.grails:grails-core" + compile "org.springframework.boot:spring-boot-starter-actuator" + compile "org.springframework.boot:spring-boot-starter-tomcat" + compile "org.grails:grails-plugin-url-mappings" + compile "org.grails:grails-plugin-rest" + compile "org.grails:grails-plugin-codecs" + compile "org.grails:grails-plugin-interceptors" + compile "org.grails:grails-plugin-services" + compile "org.grails:grails-plugin-datasource" + compile "org.grails:grails-plugin-databinding" + compile "org.grails:grails-plugin-async" + compile "org.grails:grails-web-boot" + compile "org.grails:grails-logging" + compile "org.grails.plugins:cache" + compile "org.grails:grails-plugin-gsp" + compile "org.grails.plugins:hibernate4" + compile "org.hibernate:hibernate-ehcache" + compile "org.grails.plugins:views-json" + console "org.grails:grails-console" + profile "org.grails.profiles:angular:3.1.6" + runtime "com.h2database:h2" + runtime "com.bertramlabs.plugins:asset-pipeline-grails:2.8.2" + testCompile "org.grails:grails-plugin-testing" + testCompile "org.grails.plugins:geb" + testCompile "org.grails:grails-datastore-rest-client" + testRuntime "org.seleniumhq.selenium:selenium-htmlunit-driver:2.47.1" + testRuntime "net.sourceforge.htmlunit:htmlunit:2.18" + + + //custom + compile 'org.grails.plugins:spring-security-core:3.0.3' + compile "org.grails.plugins:mail:2.0.0.RC4" + compile "org.grails.plugins:grails-spring-websocket:2.3.0" + runtime 'mysql:mysql-connector-java:5.1.36' +} + +task wrapper(type: Wrapper) { + gradleVersion = gradleWrapperVersion +} +bower { + 'angular'('1.4.x') { + source 'angular.js' + } + 'angular-resource'('1.4.x') { + source 'angular-resource.js' >> '/angular/' + } + 'angular-mocks'('1.4.x') { + source 'angular-mocks.js' >> '/angular/' + } + 'angular-bootstrap'('1.1.x') { + source 'ui-bootstrap-tpls.js' >> '/angular/' + } + 'bootstrap'('3.x.x') { + source 'dist/css/bootstrap.css' >> '/bootstrap/' + } +} + +karma { + dependencies(['karma-wrap-preprocessor']) + + profile 'angularJS' + + preprocessors = [ + 'grails-app/assets/javascripts/**/*.js': ['wrap'] + ] + + wrapPreprocessor = [ + template: "(function () { 'use strict'; <%= contents %> })()" + ] +} + +assets { + minifyJs = true + minifyCss = true +} diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 000000000..0f8d030f4 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,2 @@ +grailsVersion=3.1.6 +gradleWrapperVersion=2.9 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 000000000..941144813 Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 000000000..3869368d9 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Fri Nov 27 23:09:32 CET 2015 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-2.9-bin.zip diff --git a/gradlew b/gradlew new file mode 100755 index 000000000..9d82f7891 --- /dev/null +++ b/gradlew @@ -0,0 +1,160 @@ +#!/usr/bin/env bash + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; +esac + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 000000000..8a0b282aa --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,90 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/grails-app/conf/application.yml b/grails-app/conf/application.yml new file mode 100644 index 000000000..11b8823ca --- /dev/null +++ b/grails-app/conf/application.yml @@ -0,0 +1,139 @@ +--- +hibernate: + cache: + queries: false + use_second_level_cache: true + use_query_cache: false + region.factory_class: 'org.hibernate.cache.ehcache.EhCacheRegionFactory' + +dataSource: + pooled: true + jmxExport: true + driverClassName: 'com.mysql.jdbc.Driver' + dialect: org.hibernate.dialect.MySQL5InnoDBDialect + +environments: + development: + dataSource: + dbCreate: update + url: jdbc:mysql://localhost/streama + username: root + password: + test: + dataSource: + dbCreate: update + url: jdbc:h2:mem:testDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE + production-no-mysql: + dataSource: + dbCreate: update + url: jdbc:h2:mem:streama;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE + username: root + password: + properties: + jmxEnabled: true + initialSize: 5 + maxActive: 50 + minIdle: 5 + maxIdle: 25 + maxWait: 10000 + maxAge: 600000 + timeBetweenEvictionRunsMillis: 5000 + minEvictableIdleTimeMillis: 60000 + validationQuery: SELECT 1 + validationQueryTimeout: 3 + validationInterval: 15000 + testOnBorrow: true + testWhileIdle: true + testOnReturn: false + jdbcInterceptors: ConnectionState + defaultTransactionIsolation: 2 # TRANSACTION_READ_COMMITTED + production: + dataSource: + dbCreate: update + url: jdbc:mysql://localhost/streama + username: root + password: + properties: + jmxEnabled: true + initialSize: 5 + maxActive: 50 + minIdle: 5 + maxIdle: 25 + maxWait: 10000 + maxAge: 600000 + timeBetweenEvictionRunsMillis: 5000 + minEvictableIdleTimeMillis: 60000 + validationQuery: SELECT 1 + validationQueryTimeout: 3 + validationInterval: 15000 + testOnBorrow: true + testWhileIdle: true + testOnReturn: false + jdbcInterceptors: ConnectionState + defaultTransactionIsolation: 2 # TRANSACTION_READ_COMMITTED + +--- +--- +grails: + profile: angular + codegen: + defaultPackage: streama + spring: + transactionManagement: + proxies: false +info: + app: + name: '@info.app.name@' + version: '@info.app.version@' + grailsVersion: '@info.app.grailsVersion@' +spring: + + groovy: + template: + check-template-location: false + +--- +grails: + mime: + disable: + accept: + header: + userAgents: + - Gecko + - WebKit + - Presto + - Trident + types: + all: '*/*' + atom: application/atom+xml + css: text/css + csv: text/csv + form: application/x-www-form-urlencoded + html: + - text/html + - application/xhtml+xml + js: text/javascript + json: + - application/json + - text/json + multipartForm: multipart/form-data + rss: application/rss+xml + text: text/plain + hal: + - application/hal+json + - application/hal+xml + xml: + - text/xml + - application/xml + urlmapping: + cache: + maxsize: 1000 + controllers: + defaultScope: singleton + converters: + encoding: UTF-8 + + + +grails.controllers.upload.maxFileSize: 10000000000000 # 10TB +grails.controllers.upload.maxRequestSize: 10000000000000 # 10TB \ No newline at end of file diff --git a/grails-app/conf/logback.groovy b/grails-app/conf/logback.groovy new file mode 100644 index 000000000..7d87bc33e --- /dev/null +++ b/grails-app/conf/logback.groovy @@ -0,0 +1,33 @@ +import grails.util.BuildSettings +import grails.util.Environment + +// See http://logback.qos.ch/manual/groovy.html for details on configuration +appender('STDOUT', ConsoleAppender) { + encoder(PatternLayoutEncoder) { + pattern = "%level %logger - %msg%n" + } +} + +root(ERROR, ['STDOUT']) + +logger("streama", DEBUG) +logger 'grails.app', INFO +logger 'grails.app.controllers', DEBUG +logger 'grails.app.services', DEBUG + +// logger 'grails.plugin.springsecurity', TRACE +// logger 'org.springframework.security', DEBUG +// logger 'org.hibernate.SQL', DEBUG +// logger 'org.hibernate.type.descriptor.sql.BasicBinder', TRACE + +def targetDir = BuildSettings.TARGET_DIR +if (Environment.isDevelopmentMode() && targetDir) { + appender("FULL_STACKTRACE", FileAppender) { + file = "${targetDir}/stacktrace.log" + append = true + encoder(PatternLayoutEncoder) { + pattern = "%level %logger - %msg%n" + } + } + logger("StackTrace", ERROR, ['FULL_STACKTRACE'], false) +} diff --git a/grails-app/controllers/streama/UrlMappings.groovy b/grails-app/controllers/streama/UrlMappings.groovy new file mode 100644 index 000000000..69512f81a --- /dev/null +++ b/grails-app/controllers/streama/UrlMappings.groovy @@ -0,0 +1,16 @@ +package streama + +class UrlMappings { + + static mappings = { + "/$controller/$action?/$id?(.$format)?"{ + constraints { + // apply constraints here + } + } + + "/"(view: '/index') + "500"(view: '/error') + "404"(view: '/notFound') + } +} diff --git a/grails-app/init/BootStrap.groovy b/grails-app/init/BootStrap.groovy new file mode 100644 index 000000000..21941a30c --- /dev/null +++ b/grails-app/init/BootStrap.groovy @@ -0,0 +1,19 @@ +class BootStrap { + + def marshallerService + def defaultDataService + def migrationService + + def init = { servletContext -> + marshallerService.init() + defaultDataService.createDefaultRoles() + defaultDataService.createDefaultUsers() + defaultDataService.createDefaultSettings() + migrationService.setDefaultDeletedFlag() + migrationService.setTrailerForMovies() + migrationService.importMovieDbGenres() + migrationService.addGenresToMoviesAndShows() + } + def destroy = { + } +} diff --git a/grails-app/init/streama/Application.groovy b/grails-app/init/streama/Application.groovy new file mode 100644 index 000000000..f2300081e --- /dev/null +++ b/grails-app/init/streama/Application.groovy @@ -0,0 +1,10 @@ +package streama + +import grails.boot.GrailsApp +import grails.boot.config.GrailsAutoConfiguration + +class Application extends GrailsAutoConfiguration { + static void main(String[] args) { + GrailsApp.run(Application, args) + } +} \ No newline at end of file diff --git a/grails-app/views/application/index.gson b/grails-app/views/application/index.gson new file mode 100644 index 000000000..61f96439a --- /dev/null +++ b/grails-app/views/application/index.gson @@ -0,0 +1,33 @@ +import grails.core.* +import grails.util.* +import grails.plugins.* +import org.grails.core.artefact.* + +model { + GrailsApplication grailsApplication + GrailsPluginManager pluginManager +} + +json { + message "Welcome to Grails!" + environment Environment.current.name + appversion grailsApplication.metadata.getApplicationVersion() + grailsversion GrailsUtil.grailsVersion + appprofile grailsApplication.config.getProperty('grails.profile') + groovyversion GroovySystem.getVersion() + jvmversion System.getProperty('java.version') + reloadingagentenabled Environment.reloadingAgentEnabled + artefacts ( + controllers: grailsApplication.getArtefactInfo(ControllerArtefactHandler.TYPE).classesByName.size(), + domains: grailsApplication.getArtefactInfo(DomainClassArtefactHandler.TYPE).classesByName.size(), + services: grailsApplication.getArtefactInfo(ServiceArtefactHandler.TYPE).classesByName.size() + ) + controllers grailsApplication.getArtefacts(ControllerArtefactHandler.TYPE), { GrailsClass c -> + name c.fullName + logicalPropertyName c.logicalPropertyName + } + plugins pluginManager.allPlugins, { GrailsPlugin plugin -> + name plugin.name + version plugin.version + } +} diff --git a/grails-app/views/error.gson b/grails-app/views/error.gson new file mode 100644 index 000000000..94488283e --- /dev/null +++ b/grails-app/views/error.gson @@ -0,0 +1,6 @@ +response.status 500 + +json { + message "Internal server error" + error 500 +} \ No newline at end of file diff --git a/grails-app/views/errors/_errors.gson b/grails-app/views/errors/_errors.gson new file mode 100644 index 000000000..c1ae732d3 --- /dev/null +++ b/grails-app/views/errors/_errors.gson @@ -0,0 +1,42 @@ +import org.springframework.validation.* + +/** + * Renders validation errors according to vnd.error: https://github.com/blongden/vnd.error + */ +model { + Errors errors +} + +response.status UNPROCESSABLE_ENTITY + +json { + Errors errorsObject = (Errors)this.errors + def allErrors = errorsObject.allErrors + int errorCount = allErrors.size() + def resourcePath = g.link(resource:request.uri, absolute:false) + def resourceLink = g.link(resource:request.uri, absolute:true) + if(errorCount == 1) { + def error = allErrors.iterator().next() + message messageSource.getMessage(error, locale) + path resourcePath + _links { + self { + href resourceLink + } + } + } + else { + total errorCount + _embedded { + errors(allErrors) { ObjectError error -> + message messageSource.getMessage(error, locale) + path resourcePath + _links { + self { + href resourceLink + } + } + } + } + } +} diff --git a/grails-app/views/genre/_genre.gson b/grails-app/views/genre/_genre.gson new file mode 100644 index 000000000..7747371aa --- /dev/null +++ b/grails-app/views/genre/_genre.gson @@ -0,0 +1,7 @@ +import streama.Genre + +model { + Genre genre +} + +json g.render(genre) diff --git a/grails-app/views/genre/index.gson b/grails-app/views/genre/index.gson new file mode 100644 index 000000000..0177fdf0a --- /dev/null +++ b/grails-app/views/genre/index.gson @@ -0,0 +1,8 @@ +import streama.Genre + +model { + Iterable genreList +} + +json tmpl.genre(genreList ?: []) + diff --git a/grails-app/views/genre/show.gson b/grails-app/views/genre/show.gson new file mode 100644 index 000000000..c2ddebdfd --- /dev/null +++ b/grails-app/views/genre/show.gson @@ -0,0 +1,7 @@ +import streama.Genre + +model { + Genre genre +} + +json tmpl.genre(genre) diff --git a/grails-app/views/movie/_movie.gson b/grails-app/views/movie/_movie.gson new file mode 100644 index 000000000..dd315682a --- /dev/null +++ b/grails-app/views/movie/_movie.gson @@ -0,0 +1,7 @@ +import streama.Movie + +model { + Movie movie +} + +json g.render(movie) diff --git a/grails-app/views/movie/index.gson b/grails-app/views/movie/index.gson new file mode 100644 index 000000000..31a6230cb --- /dev/null +++ b/grails-app/views/movie/index.gson @@ -0,0 +1,8 @@ +import streama.Movie + +model { + Iterable movieList +} + +json tmpl.movie(movieList ?: []) + diff --git a/grails-app/views/movie/show.gson b/grails-app/views/movie/show.gson new file mode 100644 index 000000000..224b4e0c6 --- /dev/null +++ b/grails-app/views/movie/show.gson @@ -0,0 +1,7 @@ +import streama.Movie + +model { + Movie movie +} + +json tmpl.movie(movie) diff --git a/grails-app/views/notFound.gson b/grails-app/views/notFound.gson new file mode 100644 index 000000000..1a710b267 --- /dev/null +++ b/grails-app/views/notFound.gson @@ -0,0 +1,6 @@ +response.status 404 + +json { + message "Not Found" + error 404 +} \ No newline at end of file diff --git a/grails-app/views/notificationQueue/_notificationQueue.gson b/grails-app/views/notificationQueue/_notificationQueue.gson new file mode 100644 index 000000000..2e01de9b2 --- /dev/null +++ b/grails-app/views/notificationQueue/_notificationQueue.gson @@ -0,0 +1,7 @@ +import streama.NotificationQueue + +model { + NotificationQueue notificationQueue +} + +json g.render(notificationQueue) diff --git a/grails-app/views/notificationQueue/index.gson b/grails-app/views/notificationQueue/index.gson new file mode 100644 index 000000000..004949ef2 --- /dev/null +++ b/grails-app/views/notificationQueue/index.gson @@ -0,0 +1,8 @@ +import streama.NotificationQueue + +model { + Iterable notificationQueueList +} + +json tmpl.notificationQueue(notificationQueueList ?: []) + diff --git a/grails-app/views/notificationQueue/show.gson b/grails-app/views/notificationQueue/show.gson new file mode 100644 index 000000000..1fa4ced1f --- /dev/null +++ b/grails-app/views/notificationQueue/show.gson @@ -0,0 +1,7 @@ +import streama.NotificationQueue + +model { + NotificationQueue notificationQueue +} + +json tmpl.notificationQueue(notificationQueue) diff --git a/grails-app/views/tvShow/_tvShow.gson b/grails-app/views/tvShow/_tvShow.gson new file mode 100644 index 000000000..cb28db847 --- /dev/null +++ b/grails-app/views/tvShow/_tvShow.gson @@ -0,0 +1,7 @@ +import streama.TvShow + +model { + TvShow tvShow +} + +json g.render(tvShow) diff --git a/grails-app/views/tvShow/index.gson b/grails-app/views/tvShow/index.gson new file mode 100644 index 000000000..6295dca8b --- /dev/null +++ b/grails-app/views/tvShow/index.gson @@ -0,0 +1,8 @@ +import streama.TvShow + +model { + Iterable tvShowList +} + +json tmpl.tvShow(tvShowList ?: []) + diff --git a/grails-app/views/tvShow/show.gson b/grails-app/views/tvShow/show.gson new file mode 100644 index 000000000..f34376d7c --- /dev/null +++ b/grails-app/views/tvShow/show.gson @@ -0,0 +1,7 @@ +import streama.TvShow + +model { + TvShow tvShow +} + +json tmpl.tvShow(tvShow) diff --git a/grails-app/views/user/_user.gson b/grails-app/views/user/_user.gson new file mode 100644 index 000000000..ca32f0d7f --- /dev/null +++ b/grails-app/views/user/_user.gson @@ -0,0 +1,7 @@ +import streama.User + +model { + User user +} + +json g.render(user) diff --git a/grails-app/views/user/current.gson b/grails-app/views/user/current.gson new file mode 100644 index 000000000..606213619 --- /dev/null +++ b/grails-app/views/user/current.gson @@ -0,0 +1,11 @@ +import streama.User + +model { + User user +} + +json g.render(user){ + authorities user.authorities?.collect{[id: it?.id]} + isAdmin (user?.authorities?.find{it.authority == 'ROLE_ADMIN'} ? true : false) + isContentManager (user?.authorities?.find{it.authority == 'ROLE_CONTENT_MANAGER'} ? true : false) +} diff --git a/grails-app/views/user/index.gson b/grails-app/views/user/index.gson new file mode 100644 index 000000000..a96c530b1 --- /dev/null +++ b/grails-app/views/user/index.gson @@ -0,0 +1,8 @@ +import streama.User + +model { + Iterable userList +} + +json tmpl.user(userList ?: []) +