Search in sources :

Example 1 with PageModelDto

use of org.entando.entando.aps.system.services.pagemodel.model.PageModelDto in project entando-core by entando.

the class PageModelController method getPageModels.

@RestAccessControl(permission = Permission.SUPERUSER)
@RequestMapping(method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<RestResponse> getPageModels(RestListRequest requestList) {
    logger.trace("loading page models");
    this.getPagemModelValidator().validateRestListRequest(requestList);
    PagedMetadata<PageModelDto> result = this.getPageModelService().getPageModels(requestList);
    this.getPagemModelValidator().validateRestListResult(requestList, result);
    return new ResponseEntity<>(new RestResponse(result.getBody(), null, result), HttpStatus.OK);
}
Also used : ResponseEntity(org.springframework.http.ResponseEntity) RestResponse(org.entando.entando.web.common.model.RestResponse) PageModelDto(org.entando.entando.aps.system.services.pagemodel.model.PageModelDto) RestAccessControl(org.entando.entando.web.common.annotation.RestAccessControl) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 2 with PageModelDto

use of org.entando.entando.aps.system.services.pagemodel.model.PageModelDto in project entando-core by entando.

the class PageModelService method getPageModels.

@Override
public PagedMetadata<PageModelDto> getPageModels(RestListRequest restListReq) {
    try {
        // transforms the filters by overriding the key specified in the request with the correct one known by the dto
        List<FieldSearchFilter> filters = new ArrayList<FieldSearchFilter>(restListReq.buildFieldSearchFilters());
        filters.stream().filter(i -> i.getKey() != null).forEach(i -> i.setKey(PageModelDto.getEntityFieldName(i.getKey())));
        SearcherDaoPaginatedResult<PageModel> pageModels = this.getPageModelManager().searchPageModels(filters);
        List<PageModelDto> dtoList = null;
        if (null != pageModels) {
            dtoList = this.getDtoBuilder().convert(pageModels.getList());
        }
        PagedMetadata<PageModelDto> pagedMetadata = new PagedMetadata<>(restListReq, pageModels);
        pagedMetadata.setBody(dtoList);
        return pagedMetadata;
    } catch (Throwable t) {
        logger.error("error in search pageModels", t);
        throw new RestServerError("error in search pageModels", t);
    }
}
Also used : LoggerFactory(org.slf4j.LoggerFactory) HashMap(java.util.HashMap) RestRourceNotFoundException(org.entando.entando.aps.system.exception.RestRourceNotFoundException) PageModel(com.agiletec.aps.system.services.pagemodel.PageModel) ArrayList(java.util.ArrayList) FieldSearchFilter(com.agiletec.aps.system.common.FieldSearchFilter) PageModelValidator(org.entando.entando.web.pagemodel.validator.PageModelValidator) RestServerError(org.entando.entando.aps.system.exception.RestServerError) Frame(com.agiletec.aps.system.services.pagemodel.Frame) Service(org.springframework.stereotype.Service) Map(java.util.Map) BeanPropertyBindingResult(org.springframework.validation.BeanPropertyBindingResult) PageModelUtilizer(com.agiletec.aps.system.services.pagemodel.PageModelUtilizer) Logger(org.slf4j.Logger) ApsSystemException(com.agiletec.aps.system.exception.ApsSystemException) BeansException(org.springframework.beans.BeansException) Collectors(java.util.stream.Collectors) PageModelFrameReq(org.entando.entando.web.pagemodel.model.PageModelFrameReq) PageModelRequest(org.entando.entando.web.pagemodel.model.PageModelRequest) ApplicationContext(org.springframework.context.ApplicationContext) List(java.util.List) RestListRequest(org.entando.entando.web.common.model.RestListRequest) SearcherDaoPaginatedResult(com.agiletec.aps.system.common.model.dao.SearcherDaoPaginatedResult) PagedMetadata(org.entando.entando.web.common.model.PagedMetadata) ValidationConflictException(org.entando.entando.web.common.exceptions.ValidationConflictException) IPageModelManager(com.agiletec.aps.system.services.pagemodel.IPageModelManager) PageModelDto(org.entando.entando.aps.system.services.pagemodel.model.PageModelDto) ApplicationContextAware(org.springframework.context.ApplicationContextAware) IDtoBuilder(org.entando.entando.aps.system.services.IDtoBuilder) PagedMetadata(org.entando.entando.web.common.model.PagedMetadata) RestServerError(org.entando.entando.aps.system.exception.RestServerError) ArrayList(java.util.ArrayList) FieldSearchFilter(com.agiletec.aps.system.common.FieldSearchFilter) PageModel(com.agiletec.aps.system.services.pagemodel.PageModel) PageModelDto(org.entando.entando.aps.system.services.pagemodel.model.PageModelDto)

Example 3 with PageModelDto

use of org.entando.entando.aps.system.services.pagemodel.model.PageModelDto in project entando-core by entando.

the class PageModelController method addPageModel.

@RestAccessControl(permission = Permission.SUPERUSER)
@RequestMapping(method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<RestResponse> addPageModel(@Valid @RequestBody PageModelRequest pagemodelRequest, BindingResult bindingResult) throws ApsSystemException {
    // field validations
    if (bindingResult.hasErrors()) {
        throw new ValidationGenericException(bindingResult);
    }
    this.getPagemModelValidator().validate(pagemodelRequest, bindingResult);
    if (bindingResult.hasErrors()) {
        throw new ValidationGenericException(bindingResult);
    }
    PageModelDto dto = this.getPageModelService().addPageModel(pagemodelRequest);
    return new ResponseEntity<>(new RestResponse(dto), HttpStatus.OK);
}
Also used : ResponseEntity(org.springframework.http.ResponseEntity) RestResponse(org.entando.entando.web.common.model.RestResponse) ValidationGenericException(org.entando.entando.web.common.exceptions.ValidationGenericException) PageModelDto(org.entando.entando.aps.system.services.pagemodel.model.PageModelDto) RestAccessControl(org.entando.entando.web.common.annotation.RestAccessControl) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 4 with PageModelDto

use of org.entando.entando.aps.system.services.pagemodel.model.PageModelDto in project entando-core by entando.

the class PageModelController method updatePageModel.

@RestAccessControl(permission = Permission.SUPERUSER)
@RequestMapping(value = "/{code}", method = RequestMethod.PUT, produces = MediaType.APPLICATION_JSON_VALUE, name = "roleGroup")
public ResponseEntity<RestResponse> updatePageModel(@PathVariable String code, @Valid @RequestBody PageModelRequest pageModelRequest, BindingResult bindingResult) {
    // field validations
    if (bindingResult.hasErrors()) {
        throw new ValidationGenericException(bindingResult);
    }
    this.getPagemModelValidator().validateBodyName(code, pageModelRequest, bindingResult);
    if (bindingResult.hasErrors()) {
        throw new ValidationGenericException(bindingResult);
    }
    PageModelDto pageModel = this.getPageModelService().updatePageModel(pageModelRequest);
    return new ResponseEntity<>(new RestResponse(pageModel), HttpStatus.OK);
}
Also used : ResponseEntity(org.springframework.http.ResponseEntity) RestResponse(org.entando.entando.web.common.model.RestResponse) ValidationGenericException(org.entando.entando.web.common.exceptions.ValidationGenericException) PageModelDto(org.entando.entando.aps.system.services.pagemodel.model.PageModelDto) RestAccessControl(org.entando.entando.web.common.annotation.RestAccessControl) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 5 with PageModelDto

use of org.entando.entando.aps.system.services.pagemodel.model.PageModelDto in project entando-core by entando.

the class PageModelDtoTest method test_json.

@Test
public void test_json() throws JsonProcessingException {
    FrameDto frameDto = new FrameDto();
    frameDto.setPos(0);
    frameDto.setDescr("description");
    PageModelDto dto = new PageModelDto();
    dto.setCode("code");
    dto.setDescr("description");
    dto.getConfiguration().getFrames().add(frameDto);
    ObjectMapper mapper = new ObjectMapper();
    String json = mapper.writer().writeValueAsString(dto);
    String actual = "{\"code\":\"code\",\"description\":\"description\",\"mainFrame\":-1,\"pluginCode\":null,\"template\":null,\"configuration\":{\"frames\":[{\"pos\":0,\"description\":\"description\",\"mainFrame\":false,\"defaultWidget\":{\"code\":null,\"properties\":{}},\"sketch\":{\"x1\":0,\"y1\":0,\"x2\":0,\"y2\":0}}]}}";
// assertThat(json, is(actual));
// TODO replace a string compare with a json compare
}
Also used : PageModelDto(org.entando.entando.aps.system.services.pagemodel.model.PageModelDto) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) FrameDto(org.entando.entando.aps.system.services.pagemodel.model.FrameDto) Test(org.junit.Test)

Aggregations

PageModelDto (org.entando.entando.aps.system.services.pagemodel.model.PageModelDto)6 RestAccessControl (org.entando.entando.web.common.annotation.RestAccessControl)3 RestResponse (org.entando.entando.web.common.model.RestResponse)3 ResponseEntity (org.springframework.http.ResponseEntity)3 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)3 SearcherDaoPaginatedResult (com.agiletec.aps.system.common.model.dao.SearcherDaoPaginatedResult)2 PageModel (com.agiletec.aps.system.services.pagemodel.PageModel)2 ArrayList (java.util.ArrayList)2 ValidationGenericException (org.entando.entando.web.common.exceptions.ValidationGenericException)2 PagedMetadata (org.entando.entando.web.common.model.PagedMetadata)2 RestListRequest (org.entando.entando.web.common.model.RestListRequest)2 Test (org.junit.Test)2 FieldSearchFilter (com.agiletec.aps.system.common.FieldSearchFilter)1 ApsSystemException (com.agiletec.aps.system.exception.ApsSystemException)1 Frame (com.agiletec.aps.system.services.pagemodel.Frame)1 IPageModelManager (com.agiletec.aps.system.services.pagemodel.IPageModelManager)1 PageModelUtilizer (com.agiletec.aps.system.services.pagemodel.PageModelUtilizer)1 UserDetails (com.agiletec.aps.system.services.user.UserDetails)1 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)1 HashMap (java.util.HashMap)1