Subversion Repositories SmartDukaan

Rev

Rev 3084 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3084 Rev 3094
Line 1... Line 1...
1
package in.shop2020.web;
1
package in.shop2020.web;
2
 
2
 
-
 
3
import in.shop2020.model.Item;
-
 
4
import in.shop2020.server.ItemRepository;
-
 
5
 
3
import java.lang.reflect.Type;
6
import java.lang.reflect.Type;
4
import java.util.ArrayList;
7
import java.util.ArrayList;
5
import java.util.List;
8
import java.util.List;
6
import java.util.Map;
9
import java.util.Map;
7
import java.util.Map.Entry;
-
 
8
 
10
 
9
import javax.servlet.http.HttpServlet;
11
import javax.servlet.http.HttpServlet;
10
import javax.servlet.http.HttpServletRequest;
12
import javax.servlet.http.HttpServletRequest;
11
import javax.servlet.http.HttpServletResponse;
13
import javax.servlet.http.HttpServletResponse;
12
 
14
 
13
import com.google.appengine.api.datastore.DatastoreService;
15
import org.slf4j.Logger;
14
import com.google.appengine.api.datastore.DatastoreServiceFactory;
-
 
15
import com.google.appengine.api.datastore.Entity;
16
import org.slf4j.LoggerFactory;
-
 
17
 
16
import com.google.gson.Gson;
18
import com.google.gson.Gson;
17
import com.google.gson.reflect.TypeToken;
19
import com.google.gson.reflect.TypeToken;
18
 
20
 
19
public class UploadCatalogItemsServlet extends HttpServlet {
21
public class UploadCatalogItemsServlet extends HttpServlet {
20
 
22
 
21
    private static final long serialVersionUID = -3936645972813167428L;
23
    private static final long serialVersionUID = -3936645972813167428L;
-
 
24
    private static final Logger log = LoggerFactory.getLogger(UploadCatalogItemsServlet.class);
-
 
25
    private ItemRepository itemRepository = new ItemRepository();
22
 
26
    
23
    public void doPost(HttpServletRequest req, HttpServletResponse resp) {
27
    public void doPost(HttpServletRequest req, HttpServletResponse resp) {
24
        String data = req.getParameter("data");
28
        String data = req.getParameter("data");
25
        Gson gson = new Gson();
29
        Gson gson = new Gson();
26
        List<Map<String, String>> jsonItems = new ArrayList<Map<String, String>>();
30
        List<Map<String, String>> jsonItems = new ArrayList<Map<String, String>>();
27
        Type listOfMapType = new TypeToken<List<Map<String, String>>>() {}.getType();
31
        Type listOfMapType = new TypeToken<List<Map<String, String>>>() {}.getType();
28
        jsonItems = gson.fromJson(data, listOfMapType);
32
        jsonItems = gson.fromJson(data, listOfMapType);
29
        
33
        
30
        for (Map<String, String> jsonItem : jsonItems) {
34
        for (Map<String, String> jsonItem : jsonItems) {
31
            Entity entity = new Entity("Catalog", Long.parseLong(jsonItem.get("id")));
-
 
32
            for (Entry<String, String> entry : jsonItem.entrySet()) {
-
 
33
                String key = entry.getKey();
35
            Item item = new Item();
34
                String value = entry.getValue();
36
            item.setId(Long.parseLong(jsonItem.get(Item.ID_KEY)));
35
                if (key.endsWith("_long")) {
37
            item.setBrand(jsonItem.get(Item.BRAND_KEY));
36
                    entity.setProperty(key.replace("_long", ""), Long.parseLong(value));
38
            item.setCatalogId(Long.parseLong(jsonItem.get(Item.CATALOG_ID_KEY)));
37
                }
-
 
38
                else {
-
 
39
                    entity.setProperty(key, value);
39
            item.setColor(jsonItem.get(Item.COLOR_KEY));
40
                }
-
 
41
            }
-
 
42
                
-
 
43
            DatastoreService ds = DatastoreServiceFactory.getDatastoreService();
40
            item.setName(jsonItem.get(Item.NAME_KEY));
44
            ds.put(entity);
41
            itemRepository.create(item);
45
        }
42
        }
46
    }
43
    }
47
    
44
    
48
    public void doGet(HttpServletRequest req, HttpServletResponse resp) {
45
    public void doGet(HttpServletRequest req, HttpServletResponse resp) {
49
        doPost(req, resp);
46
        doPost(req, resp);