Created
December 1, 2013 21:46
-
-
Save tyndallm/7741251 to your computer and use it in GitHub Desktop.
This code snippet contains functions for retrieving check-in data from Facebook's SDK as well as expiring old data.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| private void updateExpiredHits(){ | |
| Query<VenueDto> venueQuery = datastore.find(VenueDto.class); | |
| Venues venues = new Venues(); | |
| for(VenueDto venueDto: venueQuery){ | |
| venues.add(venueDto); | |
| } | |
| Query<HitDto> hitQuery = datastore.find(HitDto.class, "expired", false); | |
| Hits activeHits = new Hits(); | |
| activeHits.addAll(hitQuery.asList()); | |
| System.out.println("Hits returned: " + hitQuery.asList().size()); | |
| for(HitDto currentHitDto: hitQuery.asList()){ | |
| VenueDto currentVenue = venues.findVenue(currentHitDto.getVenueId()); | |
| long currentTime = System.currentTimeMillis(); | |
| long hitExpiration = currentHitDto.getCreateTime() + getVenueLifetime(currentVenue); | |
| if(currentTime >= hitExpiration){ | |
| currentHitDto.setExpired(true); | |
| datastore.save(currentHitDto); | |
| System.out.println(currentVenue.getVenueName() + ", Hit expired"); | |
| } | |
| } | |
| } | |
| private void fetchFacebookData() { | |
| ArrayList<String> facebookIds = new ArrayList<String>(); | |
| ArrayList<FacebookObj> facebookObjsToUpdate = new ArrayList<FacebookObj>(); | |
| Venues venues = new Venues(); | |
| FacebookClient facebookClient = new DefaultFacebookClient(oAuthKey); | |
| Query<VenueDto> query = datastore.find(VenueDto.class); | |
| for(VenueDto venueDto: query){ | |
| venues.add(venueDto); | |
| FacebookObj facebookObj = venueDto.getFacebookObj(); | |
| if(!facebookObj.getFacebookId().equals("null")){ | |
| facebookIds.add(facebookObj.getFacebookId()); | |
| facebookObjsToUpdate.add(facebookObj); | |
| } | |
| } | |
| JsonObject fetchObjectsResults = facebookClient.fetchObjects(facebookIds, JsonObject.class); | |
| JsonMapper jsonMapper = new DefaultJsonMapper(); | |
| for(int i = 0; i < facebookIds.size(); i ++){ | |
| Page page = jsonMapper.toJavaObject(fetchObjectsResults.getString(facebookIds.get(i)), Page.class); | |
| for(FacebookObj facebookObj: facebookObjsToUpdate){ | |
| int numOfHitsToCreate = 0; | |
| //determine what venueId were working with | |
| if(page.getId().equals(facebookObj.getFacebookId())){ | |
| VenueDto venueDto = venues.findVenue(facebookObj.getVenueId()); | |
| // if there have been new checkins create hits | |
| if(page.getCheckins() > facebookObj.getCurrentCheckins()){ | |
| numOfHitsToCreate = (page.getCheckins()) - (facebookObj.getCurrentCheckins()); | |
| facebookObj.setCurrentCheckins(page.getCheckins()); | |
| createHits(venueDto, fb_hit, numOfHitsToCreate); | |
| } | |
| venueDto.setFacebookObj(facebookObj); | |
| datastore.save(venueDto); | |
| } | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment