Search in sources :

Example 6 with LocationDTO

use of org.activityinfo.legacy.shared.model.LocationDTO in project activityinfo by bedatadriven.

the class GetLocationsHandler method execute.

@Override
public void execute(final GetLocations command, final ExecutionContext context, final AsyncCallback<LocationResult> callback) {
    if (!command.hasLocationIds() && command.getLocationTypeId() == null) {
        callback.onSuccess(new LocationResult());
        return;
    }
    final Map<Integer, LocationDTO> dtos = new HashMap<>();
    SqlQuery query = SqlQuery.select("locationID", "name", "axe", "x", "y", "workflowStatusId", "LocationTypeId").from(Tables.LOCATION, "Location");
    if (!command.getLocationIds().isEmpty()) {
        query.where("LocationId").in(command.getLocationIds());
    }
    if (command.getLocationTypeId() != null) {
        query.where("locationTypeId").equalTo(command.getLocationTypeId());
    }
    query.where("workflowstatusid").equalTo("validated");
    query.execute(context.getTransaction(), new SqlResultCallback() {

        @Override
        public void onSuccess(SqlTransaction tx, SqlResultSet results) {
            for (SqlResultSetRow row : results.getRows()) {
                final LocationDTO dto = new LocationDTO();
                dto.setId(row.getInt("locationID"));
                dto.setName(row.getString("name"));
                dto.setAxe(row.getString("axe"));
                dto.setWorkflowStatusId(row.getString("workflowStatusId"));
                dto.setLocationTypeId(row.getInt("LocationTypeId"));
                if (!row.isNull("x") && !row.isNull("y")) {
                    dto.setLatitude(row.getDouble("y"));
                    dto.setLongitude(row.getDouble("x"));
                }
                dtos.put(dto.getId(), dto);
            }
            SqlQuery query = SqlQuery.select().appendColumn("AdminEntity.AdminEntityId", "adminEntityId").appendColumn("AdminEntity.Name", "name").appendColumn("AdminEntity.AdminLevelId", "levelId").appendColumn("AdminEntity.AdminEntityParentId", "parentId").appendColumn("link.LocationID", "locationId").from(Tables.LOCATION_ADMIN_LINK, "link").leftJoin(Tables.ADMIN_ENTITY, "AdminEntity").on("link.AdminEntityId=AdminEntity.AdminEntityId").whereTrue("AdminEntity.AdminEntityId is not null");
            if (!command.getLocationIds().isEmpty()) {
                query.where("link.LocationId").in(command.getLocationIds());
            }
            if (command.getLocationTypeId() != null) {
                query.leftJoin(Tables.LOCATION, "Location").on("link.LocationId=Location.LocationId");
                query.where("Location.LocationTypeId").equalTo(command.getLocationTypeId());
            }
            query.execute(context.getTransaction(), new SqlResultCallback() {

                @Override
                public void onSuccess(SqlTransaction tx, SqlResultSet results) {
                    for (SqlResultSetRow row : results.getRows()) {
                        AdminEntityDTO entity = new AdminEntityDTO();
                        entity.setId(row.getInt("adminEntityId"));
                        entity.setName(row.getString("name"));
                        entity.setLevelId(row.getInt("levelId"));
                        if (!row.isNull("parentId")) {
                            entity.setParentId(row.getInt("parentId"));
                        }
                        LocationDTO dto = dtos.get(row.getInt("locationId"));
                        if (dto != null) {
                            dto.setAdminEntity(entity.getLevelId(), entity);
                        }
                    }
                    List<LocationDTO> list = new ArrayList<>(dtos.values());
                    callback.onSuccess(new LocationResult(list));
                }
            });
        }
    });
}
Also used : SqlQuery(com.bedatadriven.rebar.sql.client.query.SqlQuery) HashMap(java.util.HashMap) AdminEntityDTO(org.activityinfo.legacy.shared.model.AdminEntityDTO) ArrayList(java.util.ArrayList) SqlTransaction(com.bedatadriven.rebar.sql.client.SqlTransaction) SqlResultSetRow(com.bedatadriven.rebar.sql.client.SqlResultSetRow) LocationResult(org.activityinfo.legacy.shared.command.result.LocationResult) SqlResultSet(com.bedatadriven.rebar.sql.client.SqlResultSet) SqlResultCallback(com.bedatadriven.rebar.sql.client.SqlResultCallback) LocationDTO(org.activityinfo.legacy.shared.model.LocationDTO)

Example 7 with LocationDTO

use of org.activityinfo.legacy.shared.model.LocationDTO in project activityinfo by bedatadriven.

the class ResourceLocatorAdaptorTest method persistLocation.

@Test
public void persistLocation() {
    FormInstance instance = new FormInstance(newLegacyFormInstanceId(HEALTH_CENTER_CLASS), HEALTH_CENTER_CLASS);
    instance.set(field(HEALTH_CENTER_CLASS, NAME_FIELD), "CS Ubuntu");
    instance.set(field(HEALTH_CENTER_CLASS, GEOMETRY_FIELD), new GeoPoint(-1, 13));
    instance.set(field(HEALTH_CENTER_CLASS, ADMIN_FIELD), entityRef(TERRITOIRE, IRUMU));
    assertResolves(locator.persist(instance));
    // ensure that everything worked out
    GetLocations query = new GetLocations(getLegacyIdFromCuid(instance.getId()));
    LocationResult result = execute(query);
    LocationDTO location = result.getData().get(0);
    assertThat(location.getName(), equalTo("CS Ubuntu"));
    assertThat(location.getAdminEntity(1).getName(), equalTo("Ituri"));
    assertThat(location.getAdminEntity(2).getName(), equalTo("Irumu"));
    assertThat(location.getLatitude(), equalTo(-1d));
    assertThat(location.getLongitude(), equalTo(13d));
    // remove location
    assertResolves(locator.remove(HEALTH_CENTER_CLASS, instance.getId()));
    // check whether location is removed
    result = execute(query);
    assertThat(result.getData(), IsEmptyCollection.empty());
}
Also used : GeoPoint(org.activityinfo.model.type.geo.GeoPoint) GetLocations(org.activityinfo.legacy.shared.command.GetLocations) FormInstance(org.activityinfo.model.form.FormInstance) LocationDTO(org.activityinfo.legacy.shared.model.LocationDTO) LocationResult(org.activityinfo.legacy.shared.command.result.LocationResult) Test(org.junit.Test)

Example 8 with LocationDTO

use of org.activityinfo.legacy.shared.model.LocationDTO in project activityinfo by bedatadriven.

the class CreateLocationHandlerTest method test.

@Test
public void test() throws CommandException {
    LocationDTO location = LocationDTOs.newLocation();
    execute(new CreateLocation(location));
    SearchLocations getLocations = new SearchLocations().setName(location.getName());
    LocationResult locations = execute(getLocations);
    LocationDTO newLocation = locations.getData().get(0);
    assertEquals(location.getName(), newLocation.getName());
    assertEquals(location.getAxe(), newLocation.getAxe());
    assertEquals(location.getLongitude(), newLocation.getLongitude());
    assertEquals(location.getLatitude(), newLocation.getLatitude());
}
Also used : LocationDTO(org.activityinfo.legacy.shared.model.LocationDTO) LocationResult(org.activityinfo.legacy.shared.command.result.LocationResult) Test(org.junit.Test)

Example 9 with LocationDTO

use of org.activityinfo.legacy.shared.model.LocationDTO in project activityinfo by bedatadriven.

the class LocationsResource method query.

@GET
@Timed(name = "api.rest.locations.get")
@Produces(MediaType.APPLICATION_JSON)
public Response query(@QueryParam("type") int typeId) throws IOException {
    GetLocations query = new GetLocations();
    query.setLocationTypeId(typeId);
    LocationResult result = dispatcher.execute(query);
    StringWriter writer = new StringWriter();
    JsonGenerator json = Jackson.createJsonFactory(writer);
    json.writeStartArray();
    for (LocationDTO location : result.getData()) {
        json.writeStartObject();
        json.writeNumberField("id", location.getId());
        json.writeStringField("name", location.getName());
        if (location.hasAxe()) {
            json.writeStringField("code", location.getAxe());
        }
        if (location.hasCoordinates()) {
            json.writeNumberField("latitude", location.getLatitude());
            json.writeNumberField("longitude", location.getLongitude());
        }
        if (!location.getAdminEntities().isEmpty()) {
            json.writeObjectFieldStart("adminEntities");
            for (AdminEntityDTO entity : location.getAdminEntities()) {
                json.writeFieldName(Integer.toString(entity.getLevelId()));
                json.writeStartObject();
                json.writeNumberField("id", entity.getId());
                json.writeStringField("name", entity.getName());
                json.writeEndObject();
            }
            json.writeEndObject();
        }
        json.writeEndObject();
    }
    json.writeEndArray();
    json.close();
    return Response.ok(writer.toString()).type(MediaType.APPLICATION_JSON_TYPE).build();
}
Also used : StringWriter(java.io.StringWriter) GetLocations(org.activityinfo.legacy.shared.command.GetLocations) AdminEntityDTO(org.activityinfo.legacy.shared.model.AdminEntityDTO) JsonGenerator(org.codehaus.jackson.JsonGenerator) LocationDTO(org.activityinfo.legacy.shared.model.LocationDTO) LocationResult(org.activityinfo.legacy.shared.command.result.LocationResult) Timed(org.activityinfo.server.util.monitoring.Timed)

Example 10 with LocationDTO

use of org.activityinfo.legacy.shared.model.LocationDTO in project activityinfo by bedatadriven.

the class SiteDialog method showExisting.

public void showExisting(SiteDTO site, SiteDialogCallback callback) {
    this.newSite = false;
    this.site = site;
    this.callback = callback;
    LocationDTO location = site.getLocation();
    location.setLocationTypeId(activity.getLocationTypeId());
    locationForm.updateForm(location, false);
    updateForms(site, false);
    show();
}
Also used : LocationDTO(org.activityinfo.legacy.shared.model.LocationDTO)

Aggregations

LocationDTO (org.activityinfo.legacy.shared.model.LocationDTO)14 LocationResult (org.activityinfo.legacy.shared.command.result.LocationResult)6 Test (org.junit.Test)5 GetLocations (org.activityinfo.legacy.shared.command.GetLocations)4 SqlResultCallback (com.bedatadriven.rebar.sql.client.SqlResultCallback)2 SqlResultSet (com.bedatadriven.rebar.sql.client.SqlResultSet)2 SqlResultSetRow (com.bedatadriven.rebar.sql.client.SqlResultSetRow)2 SqlTransaction (com.bedatadriven.rebar.sql.client.SqlTransaction)2 SqlQuery (com.bedatadriven.rebar.sql.client.query.SqlQuery)2 AdminEntityDTO (org.activityinfo.legacy.shared.model.AdminEntityDTO)2 FormInstance (org.activityinfo.model.form.FormInstance)2 ButtonEvent (com.extjs.gxt.ui.client.event.ButtonEvent)1 ListStore (com.extjs.gxt.ui.client.store.ListStore)1 RowData (com.extjs.gxt.ui.client.widget.layout.RowData)1 StringWriter (java.io.StringWriter)1 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 List (java.util.List)1 Map (java.util.Map)1 CreateResult (org.activityinfo.legacy.shared.command.result.CreateResult)1