/* * Copyright 2013 lorislab.org. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.lorislab.smonitor.rs.admin.service; import java.util.ArrayList; import java.util.Collection; import java.util.List; import org.lorislab.smonitor.rs.admin.model.Agent; import org.lorislab.smonitor.rs.admin.model.ChangeAgentKeyRequest; import org.lorislab.smonitor.datastore.model.AgentData; import org.lorislab.smonitor.datastore.service.AgentDataService; import org.lorislab.smonitor.rs.exception.ServiceException; import org.lorislab.smonitor.service.ServiceFactory; /** * * @author Andrej Petras <andrej@ajka-andrej.com> */ public final class AgentRestServiceImpl implements AgentRestService { private AgentDataService service; public AgentRestServiceImpl() { service = ServiceFactory.getAgentDataService(); } @Override public List<Agent> get() { List<Agent> result = new ArrayList<Agent>(); Collection<AgentData> items = service.findAll(); if (items != null) { for (AgentData item : items) { Agent tmp = create(item); result.add(tmp); } } return result; } @Override public Agent get(String guid) { Agent result = null; AgentData item = service.findByBuid(guid); if (item != null) { result = create(item); } return result; } @Override public Agent create() throws ServiceException { return create(new AgentData()); } @Override public Agent update(String guid, Agent data) { Agent result = null; AgentData item = service.findByBuid(guid); item = update(item, data); item = service.save(item); if (item != null) { result = create(item); } return result; } @Override public String delete(String guid) { return service.delete(guid); } @Override public boolean changePassword(ChangeAgentKeyRequest data) { boolean result = false; if (data != null) { if (data.getKey1() != null && data.getKey2() != null) { AgentData tmp = service.findByBuid(data.getGuid()); if (tmp != null) { if (tmp.getKey() == null && data.getKey1() == null) { tmp.setKey(data.getKey2()); service.save(tmp); } else { if (tmp.getKey() != null && tmp.getKey().equals(data.getKey1())) { tmp.setKey(data.getKey1()); service.save(tmp); } else { // LOG } } } else { // LOG } } else { // LOG } } return result; } private static AgentData update(AgentData item, Agent data) { if (item == null) { item = new AgentData(); } item.setName(data.getName()); item.setServer(data.getServer()); item.setEnabled(data.isEnabled()); return item; } private static Agent create(AgentData data) { Agent result = new Agent(); result.setGuid(data.getGuid()); result.setEnabled(data.isEnabled()); result.setName(data.getName()); result.setServer(data.getServer()); return result; } }