use of won.owner.model.User in project webofneeds by researchstudio-sat.
the class WonWebSocketHandler method saveNeedUriWithUser.
private void saveNeedUriWithUser(final WonMessage wonMessage, final WebSocketSession session) {
User user = getUserForSession(session);
URI needURI = wonMessage.getReceiverNeedURI();
UserNeed userNeed = new UserNeed(needURI);
// reload the user so we can save it
// (the user object we get from getUserForSession is detached)
user = userRepository.findOne(user.getId());
userNeedRepository.save(userNeed);
user.addNeedUri(userNeed);
userRepository.save(user);
}
use of won.owner.model.User in project webofneeds by researchstudio-sat.
the class RestNeedController method deleteDraft.
@ResponseBody
@RequestMapping(value = "/drafts/draft", method = RequestMethod.DELETE)
public ResponseEntity<String> deleteDraft(@RequestParam("uri") String uri) {
logger.debug("deleting draft: " + uri);
URI draftURI = null;
CreateDraftPojo draftPojo = null;
User user = getCurrentUser();
try {
draftURI = new URI(uri);
user.getDraftURIs().remove(draftURI);
wonUserDetailService.save(user);
Draft draft = draftRepository.findOneByDraftURI(draftURI);
if (draft == null) {
logger.warn("draft requested for delete was not found: " + uri);
} else {
draftRepository.delete(draft);
}
return ResponseEntity.ok().body("\"deleted draft: " + uri + "\"");
} catch (URISyntaxException e) {
logger.warn("draft uri problem.", e);
return ResponseEntity.badRequest().body("draft uri problem");
}
}
use of won.owner.model.User in project webofneeds by researchstudio-sat.
the class RestNeedController method getAllNeedsOfUser.
/**
* returns a List containing needs belonging to the user
* @return JSON List of need objects
*/
@ResponseBody
@RequestMapping(value = "/", produces = MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.GET)
public List<URI> getAllNeedsOfUser() {
logger.info("Getting all needs of user: ");
User user = getCurrentUser();
List<UserNeed> userNeeds = user.getUserNeeds();
List<URI> needUris = new ArrayList(userNeeds.size());
for (UserNeed userNeed : userNeeds) {
needUris.add(userNeed.getUri());
}
return needUris;
}
use of won.owner.model.User in project webofneeds by researchstudio-sat.
the class OwnerPersistenceTest method test_delete_UserAtom.
@Test
public void test_delete_UserAtom() throws Exception {
URI atomUri = URI.create("some:/atom.uri");
String email = "user@example.com";
createUserWithAtom(atomUri, email);
Thread t1 = new Thread(() -> helper.doInSeparateTransaction(() -> createUserWithAtom(atomUri, email)));
Thread t2 = new Thread(() -> helper.doInSeparateTransaction(() -> {
User sameUser = userRepository.findByUsername(email);
UserAtom sameAtom = userAtomRepository.findByAtomUri(atomUri);
sameUser.removeUserAtom(sameAtom);
userAtomRepository.delete(sameAtom);
}));
t1.start();
t1.join();
t2.start();
t2.join();
}
use of won.owner.model.User in project webofneeds by researchstudio-sat.
the class RestAtomController method getAllAtomsOfUser.
/**
* returns a List containing atoms belonging to the user
*
* @return JSON List of atom objects
*/
@ResponseBody
@RequestMapping(value = { "/", "" }, produces = MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.GET)
public Map<URI, AtomPojo> getAllAtomsOfUser(@RequestParam(value = "state", required = false) AtomState state) {
User user = getCurrentUser();
Set<UserAtom> userAtoms = user.getUserAtoms();
final Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
return userAtoms.parallelStream().map(userAtom -> {
try {
AuthenticationThreadLocal.setAuthentication(authentication);
return new AtomPojo(linkedDataSourceOnBehalfOfAtom.getDataForResource(userAtom.getUri(), userAtom.getUri()));
} catch (Exception e) {
// we catch all exceptions here as we want to be more robust against
// unforseen error conditions down the stack
logger.debug("Could not retrieve atom<" + userAtom.getUri() + "> cause: " + e.getMessage());
return null;
} finally {
// be sure to remove the principal from the threadlocal
AuthenticationThreadLocal.remove();
}
}).filter(Objects::nonNull).collect(Collectors.toMap(AtomPojo::getUri, atomPojo -> atomPojo));
}
Aggregations