Subversion Repositories SmartDukaan

Rev

Blame | Last modification | View Log | RSS feed

package com.spice.profitmandi.web.controller;

import com.spice.profitmandi.common.util.StringUtils;
import com.spice.profitmandi.dao.entity.Page;
import com.spice.profitmandi.dao.entity.dtr.WebListing;
import com.spice.profitmandi.dao.repository.dtr.WebListingRepository;
import com.spice.profitmandi.service.page.PageModel;
import com.spice.profitmandi.service.page.PageRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Transactional;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Optional;


@Controller
@RequestMapping("/pages")
@Transactional(rollbackFor =  Throwable.class)
public class PagesController {
    private static final Logger LOGGER = LogManager.getLogger(PagesController.class);

    @Value("${media.document.url}")
    String imgURL;

    @Autowired
    PageRepository pageRepository;

    @Autowired
    WebListingRepository webListingRepository;

    @GetMapping
    public String pagesList(Model model){
        try {
            List<Page> pages = pageRepository.selectAll();
            List<WebListing> webListing = webListingRepository.selectAllWebListing(Optional.ofNullable(null));
            model.addAttribute("pages", pages);
            model.addAttribute("imgURL", imgURL);
            model.addAttribute("webListing", webListing);
        } catch (Exception e) {
            LOGGER.error("Catches Error", e);
            model.addAttribute("pages", e.getMessage());
        }

        return "pages/index";
    }

    @GetMapping("/{id}")
    public ResponseEntity<?> pageDetail(@PathVariable int id) throws Exception {
        return ResponseEntity.ok(pageRepository.selectPageById(id));
    }

    @PostMapping
    public ResponseEntity<?> createOrUpdate(@RequestBody PageModel pageModel) throws Exception {
        Page page = pageModel.getId() > 0 ? pageRepository.selectPageById(pageModel.getId()) : new Page();

        page.setTitle(pageModel.getTitle());
        page.setVisibleOn(pageModel.getVisibleOn());
        page.setSectionData(pageModel.getSectionData());
        page.setSectionOrder(pageModel.getSectionOrder());
        page.setSectionBelow(pageModel.getSectionBelow());
        page.setSectionGroup(pageModel.getSectionGroup());
        page.setTabTitle(pageModel.getTabTitle());
        page.setStatus(pageModel.isStatus());

        if (pageModel.getId() == 0){
            page.setSlug(StringUtils.toSlug(pageModel.getTitle()));
            pageRepository.persist(page);
        }
        return ResponseEntity.ok(true);
    }

    @DeleteMapping("/{id}")
    public String deleteSuperCatalog(@PathVariable int id, Model model) throws Exception {
        pageRepository.deleteById(id);
        model.addAttribute("response1", true);
        return "response";
    }
}