Skip to content
Snippets Groups Projects
Commit b7bb12fe authored by Manuel Spuhler's avatar Manuel Spuhler
Browse files

Cleanup

parent d7322712
No related branches found
No related tags found
No related merge requests found
......@@ -230,31 +230,6 @@
<artifactId>javax.inject</artifactId>
<version>${javax-inject.version}</version>
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-actor_2.11</artifactId>
<version>${akka.version}</version>
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-remote_2.11</artifactId>
<version>${akka.version}</version>
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-cluster_2.11</artifactId>
<version>${akka.version}</version>
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-cluster-tools_2.11</artifactId>
<version>${akka.version}</version>
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-slf4j_2.11</artifactId>
<version>${akka.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
......@@ -275,19 +250,7 @@
<artifactId>jaxb-runtime</artifactId>
<version>2.4.0-b180830.0438</version>
</dependency>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>${scala.release.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-reflect</artifactId>
<version>${scala.release.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
......
/**
* Created by mirco on 20.05.16.
*/
package eu.hbp.mip.controllers;
import eu.hbp.mip.configuration.SecurityConfiguration;
import eu.hbp.mip.model.UserInfo;
import eu.hbp.mip.repositories.AppRepository;
import io.swagger.annotations.*;
import eu.hbp.mip.model.App;
import eu.hbp.mip.model.User;
import eu.hbp.mip.model.Vote;
import eu.hbp.mip.repositories.VoteRepository;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.Iterator;
import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
@RestController
@RequestMapping(value = "/apps", produces = {APPLICATION_JSON_VALUE})
@Api(value = "/apps", description = "the apps API")
public class AppsApi {
private static final Logger LOGGER = LoggerFactory.getLogger(AppsApi.class);
@Autowired
private SecurityConfiguration securityConfiguration;
@Autowired
private AppRepository appRepository;
@Autowired
private VoteRepository voteRepository;
@Autowired
private UserInfo userInfo;
@ApiOperation(value = "Get apps", response = App.class, responseContainer = "List")
@RequestMapping(method = RequestMethod.GET)
public ResponseEntity<Iterable> getApps(
) {
LOGGER.info("Get apps");
return ResponseEntity.ok(appRepository.findAll());
}
@ApiOperation(value = "Post a vote")
@RequestMapping(value = "/{id}/vote/{value}", method = RequestMethod.POST)
public ResponseEntity<Void> vote(
@ApiParam(value = "id", required = true) @PathVariable("id") Integer id,
@ApiParam(value = "value", required = true) @PathVariable("value") Integer value
) {
LOGGER.info("Post a vote");
User user = userInfo.getUser();
App app = appRepository.findOne(id);
Vote vote;
Iterator<Vote> voteIter = voteRepository.findByUserAndApp(user, app).iterator();
if(voteIter.hasNext())
{
vote = voteIter.next();
}
else
{
vote = new Vote();
vote.setUser(user);
vote.setApp(app);
}
vote.setValue(value);
voteRepository.save(vote);
LOGGER.info("Vote saved");
return new ResponseEntity<>(HttpStatus.CREATED);
}
}
......@@ -4,20 +4,12 @@
package eu.hbp.mip.controllers;
import eu.hbp.mip.model.DatasetDescription;
import io.swagger.annotations.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import scala.Option;
import java.util.ArrayList;
import java.util.List;
import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
......
......@@ -20,9 +20,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import scala.Option;
import java.sql.Date;
import java.util.*;
import java.io.IOException;
......@@ -80,11 +78,4 @@ public class MiningApi {
return new ResponseEntity<>("Not found", HttpStatus.BAD_REQUEST);
}
}
private static String unwrap(Option<String> option) {
if (option.isDefined())
return option.get();
else
return "";
}
}
/**
* Created by mirco on 20.05.16.
*/
package eu.hbp.mip.model;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import javax.persistence.*;
import java.util.HashSet;
import java.util.Set;
@Entity
@Table(name = "`app`")
@ApiModel
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(value = { "votes" })
public class App {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private Integer id;
private String name;
@Column(columnDefinition = "text")
private String description;
private String author;
private String email;
private String category;
private String link;
@Column(columnDefinition = "text")
private String image;
@OneToMany(mappedBy = "app", fetch = FetchType.EAGER)
private Set<Vote> votes = new HashSet<>();
public App() {
/*
* Empty constructor is needed by Hibernate
*/
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
public String getLink() {
return link;
}
public void setLink(String link) {
this.link = link;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
public Set<Vote> getVotes() {
return votes;
}
public void setVotes(Set<Vote> votes) {
this.votes = votes;
}
public int getRatingCount() {
return votes.size();
}
public long getRatingSum() {
long sum = 0;
for(Vote vote : votes) {
sum += vote.getValue();
}
return sum;
}
}
package eu.hbp.mip.repositories;
import eu.hbp.mip.model.App;
import org.springframework.data.repository.CrudRepository;
/**
* Created by mirco on 11.07.16.
*/
public interface AppRepository extends CrudRepository<App, Integer> {
}
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout
pattern="%d{HH:mm:ss.SSS} %highlight{%level}{FATAL=bg_red, ERROR=red, WARN=yellow, INFO=green, DEBUG=blue} %logger{36} - %.1000msg%n"/>
</Console>
</Appenders>
<Loggers>
<Root level="${env:LOG_LEVEL:-INFO}">
<AppenderRef ref="Console"/>
</Root>
<Logger name="akka.actor.LocalActorRefProvider(akka://
<Logger name="io.netty" level="${env:NETTY_LOG_LEVEL:-ERROR}">
<AppenderRef ref="Console"/>
</Logger>
</Loggers>
</Configuration>
woken)" level="INFO">
<AppenderRef ref="Console"/>
</Logger>
<Logger name="akka.cluster" level="${env:AKKA_CLUSTER_LOG_LEVEL:-INFO}">
<AppenderRef ref="Console"/>
</Logger>
<Logger name="akka.io" level="${env:AKKA_IO_LOG_LEVEL:-INFO}">
<AppenderRef ref="Console"/>
</Logger>
<Logger name="akka.http.impl" level="${env:AKKA_HTTP_LOG_LEVEL:-INFO}">
<AppenderRef ref="Console"/>
</Logger>
<Logger name="akka.remote.artery.compress" level="${env:AKKA_REMOTE_LOG_LEVEL:-INFO}">
<AppenderRef ref="Console"/>
</Logger>
<Logger name="akka.remote.artery.tcp" level="${env:AKKA_REMOTE_LOG_LEVEL:-INFO}">
<AppenderRef ref="Console"/>
</Logger>
<Logger name="akka.stream.impl" level="${env:AKKA_STREAM_LOG_LEVEL:-INFO}">
<AppenderRef ref="Console"/>
</Logger>
\ No newline at end of file
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment