Skip to content

Commit

Permalink
endpoint change char user
Browse files Browse the repository at this point in the history
  • Loading branch information
gcaraciolo committed Jun 1, 2016
1 parent c5cb0ce commit 6ffe0df
Show file tree
Hide file tree
Showing 1,574 changed files with 286 additions and 114 deletions.
Binary file modified deployments/ROOT.war
Binary file not shown.
Binary file added deployments/cardgame.war
Binary file not shown.
22 changes: 14 additions & 8 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,18 @@
<version>0.6.0</version>
</dependency>

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.1.0.Final</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.1.0.Final</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.6.2</version>
</dependency>

</dependencies>
<profiles>
Expand All @@ -43,7 +49,7 @@
<!-- http://maven.apache.org/guides/mini/guide-building-for-different-environments.html -->
<id>openshift</id>
<build>
<finalName>helloword</finalName>
<finalName>cardgame</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
Expand All @@ -52,7 +58,7 @@
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
<outputDirectory>deployments</outputDirectory>
<warName>ROOT</warName>
<warName>cardgame</warName>
</configuration>
</plugin>
</plugins>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import br.unicap.cardgame.model.Cards;

public class CardController {
public class CardsController {

public int getCorretAnswer(Cards card) {
return card.getQuestionId().getCorrectAnswerId().getId();
Expand Down
12 changes: 0 additions & 12 deletions src/main/java/br/unicap/cardgame/controller/CharController.java

This file was deleted.

23 changes: 23 additions & 0 deletions src/main/java/br/unicap/cardgame/controller/CharsController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package br.unicap.cardgame.controller;

import br.unicap.cardgame.dao.CharsDAO;
import br.unicap.cardgame.model.Chars;
import javax.ejb.EJB;
import javax.ejb.Stateless;


@Stateless
public class CharsController {

@EJB
private CharsDAO charDAO;

public Chars getPlayerChar(String username) {
return charDAO.getPlayerChar(username);
}
}
Original file line number Diff line number Diff line change
@@ -1,31 +1,22 @@
package br.unicap.cardgame.controller;

import br.unicap.cardgame.dao.DecksDAO;
import br.unicap.cardgame.model.Cards;
import br.unicap.cardgame.model.Users;
import br.unicap.cardgame.util.Utils;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

@Stateless
public class DeckController {
public class DecksController {

@PersistenceContext(unitName = "cardgame")
private EntityManager em;

private List<Cards> userCards(Users u) {
return em.createNativeQuery("select ca.id, ca.question_id, ca.attack, ca.defense, ca.life from users u, chars c, decks d, decks_cards dc, cards ca where \n" +
"u.id = " + u.getId() + " and \n" +
"u.char_id = c.id and \n" +
"c.deck_id = d.id and \n" +
"d.id = dc.deck_id and\n" +
"dc.card_id = ca.id;", Cards.class).getResultList();
}
@EJB
private DecksDAO decksDAO;

public List<Cards> randonCards(Users u) {
List<Cards> cards = userCards(u);
List<Cards> cards = decksDAO.getUserCards(u);
if(cards.size() < 1) {
return new ArrayList<Cards>();
}
Expand All @@ -37,7 +28,7 @@ public List<Cards> randonCards(Users u) {
}

public Cards randonCard(Users u) {
List<Cards> cards = userCards(u);
List<Cards> cards = decksDAO.getUserCards(u);
if(cards.size() < 1) {
return null;
}
Expand Down
57 changes: 0 additions & 57 deletions src/main/java/br/unicap/cardgame/controller/UserController.java

This file was deleted.

51 changes: 51 additions & 0 deletions src/main/java/br/unicap/cardgame/controller/UsersController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package br.unicap.cardgame.controller;

import br.unicap.cardgame.dao.UsersDAO;
import br.unicap.cardgame.model.Player;
import br.unicap.cardgame.model.Users;
import br.unicap.cardgame.util.Utils;
import br.unicap.cardgame.ws.response.CardGameResponse;
import javax.ejb.Stateless;
import br.unicap.cardgame.ws.response.CardGameResponseToken;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import javax.ejb.EJB;

@Stateless
public class UsersController {

@EJB
private UsersDAO usersDAO;

public CardGameResponseToken authenticate(String username, String password) throws Exception {

Users u = usersDAO.getUserByUsername(username);

if(u == null || !verifyPassword(u, password)) {
throw new Exception("password invalido");
}
Player p = new Player(u.getId(), u.getUsername());
String token = Jwts.builder()
.setSubject(p.toString())
.signWith(SignatureAlgorithm.HS512, Utils.APP_CLIENT_SECRET)
.compact();

return new CardGameResponseToken(true, token);
}

private boolean verifyPassword(Users user, String password) {
return user.getPassword().equals(password);
}

public Users getUserByUsername(String username) {
return usersDAO.getUserByUsername(username);
}

public CardGameResponse changeUserChar(int user_id, int char_id) {
boolean update = usersDAO.changeUserChar(user_id, char_id);
if(update) {
return new CardGameResponse(true, 2000, "Char alterado com sucesso");
}
return new CardGameResponse(true, 2000, "Falha ao alterar char!");
}
}
25 changes: 25 additions & 0 deletions src/main/java/br/unicap/cardgame/dao/CharsDAO.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package br.unicap.cardgame.dao;

import br.unicap.cardgame.model.Chars;
import br.unicap.cardgame.model.Users;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

@Stateless
public class CharsDAO {

@PersistenceContext(unitName = "cardgame")
private EntityManager em;

public Chars getPlayerChar(String username) {
Users u = em.createNamedQuery("Users.findByUsername", Users.class)
.setParameter("username", username)
.getSingleResult();
Chars c = em.createNamedQuery("Chars.findById", Chars.class)
.setParameter("id", u.getCharId().getId())
.getSingleResult();
return c;
}

}
24 changes: 24 additions & 0 deletions src/main/java/br/unicap/cardgame/dao/DecksDAO.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package br.unicap.cardgame.dao;

import br.unicap.cardgame.model.Cards;
import br.unicap.cardgame.model.Users;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

@Stateless
public class DecksDAO {

@PersistenceContext(unitName = "cardgame")
private EntityManager em;

public List<Cards> getUserCards(Users u) {
return em.createNativeQuery("select ca.id, ca.question_id, ca.attack, ca.defense, ca.life from users u, chars c, decks d, decks_cards dc, cards ca where \n" +
"u.id = " + u.getId() + " and \n" +
"u.char_id = c.id and \n" +
"c.deck_id = d.id and \n" +
"d.id = dc.deck_id and\n" +
"dc.card_id = ca.id;", Cards.class).getResultList();
}
}
36 changes: 36 additions & 0 deletions src/main/java/br/unicap/cardgame/dao/UsersDAO.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package br.unicap.cardgame.dao;

import br.unicap.cardgame.model.Users;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

@Stateless
public class UsersDAO {

@PersistenceContext(unitName = "cardgame")
private EntityManager em;

public Users getUserByUsername(String username) {
return em.createNamedQuery("Users.findByUsername", Users.class)
.setParameter("username", username)
.getSingleResult();
}

public Boolean changeUserChar(int user_id, int char_id) {
boolean status = false;
try {
String hql = "UPDATE Users SET charId.id = :char_id " +
"WHERE id = :user_id";
Query query = em.createQuery(hql);
query.setParameter("char_id", char_id)
.setParameter("user_id", user_id);
status = query.executeUpdate() > 0;
} catch(Exception e) {
System.err.println(e);
}
return status;
}

}
26 changes: 15 additions & 11 deletions src/main/java/br/unicap/cardgame/engine/BattleField.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package br.unicap.cardgame.engine;

import br.unicap.cardgame.controller.CardController;
import br.unicap.cardgame.controller.DeckController;
import br.unicap.cardgame.controller.UserController;
import br.unicap.cardgame.controller.CardsController;
import br.unicap.cardgame.controller.CharsController;
import br.unicap.cardgame.controller.DecksController;
import br.unicap.cardgame.controller.UsersController;
import br.unicap.cardgame.model.Cards;
import br.unicap.cardgame.model.Chars;
import br.unicap.cardgame.model.Player;
Expand All @@ -20,10 +21,13 @@ public class BattleField {
private final Queue<Player> audience = new LinkedList<Player>();

@EJB
private UserController userController;
private UsersController usersController;

@EJB
private DeckController deckController;
private CharsController charsController;

@EJB
private DecksController decksController;

/* getters and setters */
public Queue<Player> getAudience() {
Expand Down Expand Up @@ -111,27 +115,27 @@ private void swapPlayers() {
}

private void getCardFromDeck() {
Users u = userController.getUserByName(getCurrentPlayer().getUsername());
Cards card = deckController.randonCard(u);
Users u = usersController.getUserByUsername(getCurrentPlayer().getUsername());
Cards card = decksController.randonCard(u);
getCurrentPlayer().addCardToAvailableCards(card);
}

private PlayerFighter createNewPlayerFighter(Player player) {
Chars c = null;
PlayerFighter pf = null;
try {
c = userController.getPlayerChar(player.getUsername());
c = charsController.getPlayerChar(player.getUsername());
pf = new PlayerFighter(player.getUsername(), c);
Users u = userController.getUserByName(player.getUsername());
pf.setAvailableCards(deckController.randonCards(u));
Users u = usersController.getUserByUsername(player.getUsername());
pf.setAvailableCards(decksController.randonCards(u));
} catch(Exception e) {
System.out.println(e);
}
return pf;
}

private boolean checkAnswer(Cards card, int answer_id) {
CardController cardController = new CardController();
CardsController cardController = new CardsController();
int correctAnswer = cardController.getCorretAnswer(card);
return correctAnswer == answer_id;
}
Expand Down
Loading

0 comments on commit 6ffe0df

Please sign in to comment.