package com.epam.cisen.core.ui;
import com.epam.cisen.core.api.MongoDBService;
import com.epam.cisen.core.api.dto.CiUser;
import com.epam.cisen.core.api.dto.Constants;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Reference;
import org.apache.felix.scr.annotations.Service;
import org.bson.types.ObjectId;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.ws.rs.*;
import javax.ws.rs.core.MultivaluedMap;
/**
* Created by Vladislav on 22.12.2014.
*/
@Component
@Service(UsersService.class)
@Path("/users")
public class UsersService {
private static final Logger LOGGER = LoggerFactory.getLogger(UsersService.class);
@Reference
protected MongoDBService mongoDBService;
@GET
@Produces("application/json")
public CiUser getUser(@QueryParam("name") String name) {
LOGGER.info("Try to find user with name = {}", name);
CiUser result = mongoDBService.getCollection(Constants.DB.USERS).findOne("{name:#}", name).as(CiUser.class);
if (result == null) {
LOGGER.error("Cannot find user with name = {}", name);
}
return result;
}
@POST
@Consumes("application/json")
public void create(CiUser body) {
LOGGER.info("Try to create user [{}]", body.getName());
mongoDBService.getCollection(Constants.DB.USERS).insert(body);
}
@PUT
@Consumes("application/json")
public void update(CiUser body) {
LOGGER.info("Try to create user [{}]", body.getName());
mongoDBService.getCollection(Constants.DB.USERS).update(new ObjectId(body.getId())).with(body);
}
}