Skip to content

Commit 9d81d00

Browse files
committed
Merge pull request #1 from carlosvasquez/master
merge de nuevos cambios para el manejo de información de universidades
2 parents ef7b95f + c977b1d commit 9d81d00

File tree

3 files changed

+175
-5
lines changed

3 files changed

+175
-5
lines changed

src/main/java/org/devdom/fbclient/App.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ public static void main( String[] args )
1616
fbConnect.setQuestionID("562574913759358"); //Cuales son tus skillls? (Plataforma para la que desarrollas)
1717
fbConnect.updateSkills();
1818
fbConnect.setQuestionID("558308817519301"); //Cuales son tus skillls? (Manejadores de versión)
19+
fbConnect.updateSkills();
20+
fbConnect.setQuestionID("606824229334426"); //Universidades
21+
fbConnect.updateSkills();
22+
fbConnect.updateUniversities();
1923
fbConnect.updateDevelopers();
2024
}
2125
}

src/main/java/org/devdom/fbclient/FBConnect.java

Lines changed: 53 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import javax.persistence.EntityManagerFactory;
1515
import javax.persistence.Persistence;
1616
import org.devdom.fbclient.model.dto.Skillset;
17+
import org.devdom.fbclient.model.dto.University;
1718
import org.devdom.fbclient.model.dto.Users;
1819
import org.devdom.fbclient.model.dto.Votes;
1920
import org.devdom.fbclient.model.dto.VotesPK;
@@ -68,7 +69,7 @@ private JSONArray getFBVoters(Long skillID) {
6869
}
6970
}
7071

71-
public JSONArray getSkills(){
72+
public JSONArray getOptions(){
7273
try {
7374
String query = FQL.QUESTION_OPTIONS;
7475
query = query.replace(":question_id",questionID);
@@ -81,7 +82,7 @@ public JSONArray getSkills(){
8182

8283
public int totalFBVotes(){
8384
int count = 0;
84-
JSONArray result = getSkills();
85+
JSONArray result = getOptions();
8586
try {
8687
for (int i = 0; i < result.length(); i++){
8788
JSONObject json = result.getJSONObject(i);
@@ -175,19 +176,66 @@ public void updateDevelopers(){
175176
em.getTransaction().commit();
176177
}
177178

179+
public void updateUniversities() {
180+
EntityManager em = getEntityManager();
181+
List<University> universities = em.createNamedQuery("University.findAll").getResultList();
182+
int added = 0;
183+
int updated = 0;
184+
JSONArray result = getOptions();
185+
boolean exists;
186+
em.getTransaction().begin();
187+
for(int i=0;i<result.length();i++){
188+
try {
189+
exists = false;
190+
JSONObject json = result.getJSONObject(i);
191+
Long fbId = Long.valueOf( json.getString("id") );
192+
for(University university : universities){
193+
if(fbId == university.getFbId()){
194+
exists=true;
195+
university.setVotes(Short.valueOf(json.getString("votes")));
196+
Logger.getLogger(FBConnect.class.getName()).log(Level.INFO, "{0} es la nueva cantida de votos para la universidad {1} ", new Object[]{json.getString("votes"), json.getString("name")});
197+
updated++;
198+
Logger.getLogger(FBConnect.class.getName()).log(Level.INFO, "{0} = {1} ", new Object[]{fbId, university.getFbId()});
199+
break;
200+
}
201+
}
202+
if(!exists){
203+
University newUni = new University();
204+
newUni.setFbId( fbId );
205+
newUni.setName(json.getString("name"));
206+
newUni.setVotes(Short.valueOf( json.getString("votes") ));
207+
em.persist(newUni);
208+
Logger.getLogger(FBConnect.class.getName()).log(Level.INFO, "fue agregada la universidad {0} con {1} votos", new Object[]{json.getString("name"), json.getString("votes")});
209+
added++;
210+
}
211+
212+
int count = updateVotes(json.getLong("id"));
213+
if(count>0){
214+
Logger.getLogger(FBConnect.class.getName()).log(Level.INFO, "fueron añadidas {0} universidades", count );
215+
}
216+
} catch (JSONException ex) {
217+
Logger.getLogger(FBConnect.class.getName()).log(Level.SEVERE, null, ex);
218+
em.getTransaction().rollback();
219+
}
220+
}
221+
em.getTransaction().commit();
222+
//em.getTransaction().rollback();
223+
}
224+
178225
public void updateSkills(){
179226

180227
EntityManager em = getEntityManager();
181228
List<Skillset> skills = em.createNamedQuery("Skillset.findAll").getResultList();
182229

183230
int updated = 0;
184-
JSONArray result = getSkills();
231+
JSONArray result = getOptions();
185232
for(Skillset skill : skills){
186233
for (int i = 0; i < result.length(); i++){
187234
try {
188235
em.getTransaction().begin();
189236
JSONObject json = result.getJSONObject(i);
190-
if( json.get("id").equals(skill.getOptionId()) ){
237+
Long skillID = Long.valueOf(json.getString("id"));
238+
if( skillID == skill.getOptionId() ){
191239
if(!json.get("votes").equals(skill.getVotes())){
192240
updated++;
193241
Logger.getLogger(FBConnect.class.getName()).log(Level.INFO, "skill : {0}", json.getString("name"));
@@ -212,7 +260,7 @@ public void updateSkills(){
212260
}
213261
Logger.getLogger(FBConnect.class.getName()).log(Level.INFO, "skill actualizados: {0}", updated);
214262
}
215-
263+
216264
/**
217265
* @return the questionID
218266
*/
Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
/*
2+
* To change this license header, choose License Headers in Project Properties.
3+
* To change this template file, choose Tools | Templates
4+
* and open the template in the editor.
5+
*/
6+
7+
package org.devdom.fbclient.model.dto;
8+
9+
import java.io.Serializable;
10+
import javax.persistence.Basic;
11+
import javax.persistence.Column;
12+
import javax.persistence.Entity;
13+
import javax.persistence.GeneratedValue;
14+
import javax.persistence.GenerationType;
15+
import javax.persistence.Id;
16+
import javax.persistence.NamedQueries;
17+
import javax.persistence.NamedQuery;
18+
import javax.persistence.Table;
19+
import javax.xml.bind.annotation.XmlRootElement;
20+
21+
/**
22+
*
23+
* @author Ronny Placencia
24+
*/
25+
@Entity
26+
@Table(name = "dev_university")
27+
@XmlRootElement
28+
@NamedQueries({
29+
@NamedQuery(name = "University.findAll", query = "SELECT u FROM University u"),
30+
@NamedQuery(name = "University.findById", query = "SELECT u FROM University u WHERE u.id = :id"),
31+
@NamedQuery(name = "University.findByFbId", query = "SELECT u FROM University u WHERE u.fbId = :fbId"),
32+
@NamedQuery(name = "University.findByName", query = "SELECT u FROM University u WHERE u.name = :name"),
33+
@NamedQuery(name = "University.findByVotes", query = "SELECT u FROM University u WHERE u.votes = :votes")})
34+
public class University implements Serializable {
35+
private static final long serialVersionUID = 1L;
36+
@Id
37+
@GeneratedValue(strategy = GenerationType.IDENTITY)
38+
@Basic(optional = false)
39+
@Column(name = "id")
40+
private Integer id;
41+
@Column(name = "fb_id")
42+
private long fbId;
43+
@Column(name = "name")
44+
private String name;
45+
@Column(name = "votes")
46+
private Short votes;
47+
48+
public University() {
49+
}
50+
51+
public University(long fbId, String name, Short votes){
52+
this.fbId = fbId;
53+
this.name = name;
54+
this.votes = votes;
55+
}
56+
57+
public University(Integer id) {
58+
this.id = id;
59+
}
60+
61+
public Integer getId() {
62+
return id;
63+
}
64+
65+
public void setId(Integer id) {
66+
this.id = id;
67+
}
68+
69+
public long getFbId() {
70+
return fbId;
71+
}
72+
73+
public void setFbId(long fbId) {
74+
this.fbId = fbId;
75+
}
76+
77+
public String getName() {
78+
return name;
79+
}
80+
81+
public void setName(String name) {
82+
this.name = name;
83+
}
84+
85+
public Short getVotes() {
86+
return votes;
87+
}
88+
89+
public void setVotes(Short votes) {
90+
this.votes = votes;
91+
}
92+
93+
@Override
94+
public int hashCode() {
95+
int hash = 0;
96+
hash += (id != null ? id.hashCode() : 0);
97+
return hash;
98+
}
99+
100+
@Override
101+
public boolean equals(Object object) {
102+
// TODO: Warning - this method won't work in the case the id fields are not set
103+
if (!(object instanceof University)) {
104+
return false;
105+
}
106+
University other = (University) object;
107+
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
108+
return false;
109+
}
110+
return true;
111+
}
112+
113+
@Override
114+
public String toString() {
115+
return "org.devdom.fbclient.model.dto.University[ id=" + id + " ]";
116+
}
117+
118+
}

0 commit comments

Comments
 (0)