Package com.nabalive.server.web.controller

Source Code of com.nabalive.server.web.controller.RfidController

package com.nabalive.server.web.controller;

import com.google.common.collect.ImmutableList;
import com.nabalive.application.core.Application;
import com.nabalive.application.core.ApplicationManager;
import com.nabalive.common.server.MessageService;
import com.nabalive.data.core.dao.ApplicationStoreDAO;
import com.nabalive.data.core.dao.NabaztagDAO;
import com.nabalive.data.core.model.ApplicationConfig;
import com.nabalive.data.core.model.Nabaztag;
import com.nabalive.data.core.model.Tag;
import com.nabalive.framework.web.Request;
import com.nabalive.framework.web.Response;
import com.nabalive.framework.web.Route;
import com.nabalive.framework.web.SimpleRestHandler;
import com.nabalive.server.web.ConnectionWelcome;
import org.bson.types.ObjectId;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import javax.annotation.concurrent.Immutable;
import java.util.Map;

import static com.google.common.base.Preconditions.checkNotNull;

/**
* Created by IntelliJ IDEA.
* User: Julien Cheype
* Date: 11/29/11
*/

@Component
public class RfidController {
    private final Logger logger = LoggerFactory.getLogger(getClass());

    @Autowired
    MessageService messageService;

    @Autowired
    private SimpleRestHandler restHandler;

    @Autowired
    private ApplicationManager applicationManager;

    @Autowired
    private NabaztagDAO nabaztagDAO;

    @Autowired
    private ApplicationStoreDAO applicationStoreDAO;

    @Autowired
    private NabaztagController nabaztagController;

    @PostConstruct
    void init() {
        restHandler
                .get(new Route("/vl/rfid.jsp") {
                    @Override
                    public void handle(Request request, Response response, Map<String, String> map) throws Exception {
                        String mac = checkNotNull(request.getParam("sn")).toLowerCase();
                        String tagValue = checkNotNull(request.getParam("t")).toLowerCase();
                        String host = request.request.getHeader("Host");

                        Nabaztag nabaztag = nabaztagDAO.findOne("macAddress", mac);
                        if(nabaztag == null){
                            messageService.sendMessage(mac, "ST " + ConnectionWelcome.WELCOME_URL + "\nMW\n");
                            response.write("ok");
                            return;
                        }

                        if (!nabaztag.hasTag(tagValue)) {
                            Tag tag = new Tag();
                            tag.setValue(tagValue);
                            tag.setName(tagValue);
                            nabaztag.getTags().add(tag);
                            nabaztagDAO.save(nabaztag);
                            nabaztagController.tts(nabaztag.getMacAddress(), host, "fr", "Nouveau tag ajouté");
                        } else {
                            for (ApplicationConfig applicationConfig : nabaztag.getApplicationConfigList()) {
                                if (applicationConfig.getTags().contains(tagValue)) {
                                    String apikey = applicationConfig.getApplicationStoreApikey();
                                    Application application = applicationManager.getApplication(apikey);

                                    applicationConfig.getParameters().put("__RFID__", (new ImmutableList.Builder<String>()).add(tagValue).build());
                                    application.onStartup(nabaztag, applicationConfig);
                                    response.write("ok");
                                    return;
                                }
                            }
                            nabaztagController.tts(nabaztag.getMacAddress(), host, "fr", "Aucune application associée au tag");
                        }
                        response.write("ok");
                    }
                });
    }
}
TOP

Related Classes of com.nabalive.server.web.controller.RfidController

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.