org.kelvmiao.sevenwonders.web.controller.UserController.java Source code

Java tutorial

Introduction

Here is the source code for org.kelvmiao.sevenwonders.web.controller.UserController.java

Source

/*
 * Copyright (c) 2015 Kelvin Miao.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all
 * copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */

package org.kelvmiao.sevenwonders.web.controller;

import org.kelvmiao.sevenwonders.web.bean.User;
import org.kelvmiao.sevenwonders.web.controller.base.ControllerBase;
import org.kelvmiao.sevenwonders.web.request.LoginRequest;
import org.kelvmiao.sevenwonders.web.service.UserService;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

/**
 * Controller for users
 * Created by kelvin on 26/11/15.
 */
@RestController
@RequestMapping("/users")
public class UserController extends ControllerBase {
    @Resource
    private UserService userService;

    @RequestMapping(method = RequestMethod.POST)
    void register(@RequestParam("name") String name, @RequestParam("password") String password) {
        User user = new User();
        user.setName(name);
        user.setPassword(password);
        userService.register(user);
    }

    @RequestMapping(method = RequestMethod.POST, value = "/login")
    ResponseEntity login(@RequestBody LoginRequest request) {
        User user = userService.login(request.getName(), request.getPassword());
        if (user != null) {
            httpSession.setAttribute("uid", user.getUid());
            httpSession.setAttribute("userName", user.getName());
            return ResponseEntity.ok(user);
        }
        return ResponseEntity.notFound().build();
    }

    @RequestMapping(method = RequestMethod.GET, value = "/logout")
    ResponseEntity logout() {
        if (httpSession.getAttribute("uid") != null) {
            httpSession.invalidate();
            return ResponseEntity.noContent().build();
        }
        return ResponseEntity.badRequest().build();
    }

    @RequestMapping(method = RequestMethod.GET, value = "/checkExist")
    ResponseEntity checkExist(@RequestParam("name") String name) {
        if (userService.checkExist(name))
            return ResponseEntity.ok().build();
        return ResponseEntity.noContent().build();
    }
}