Ejemplo n.º 1
0
func (Data *Data) Manage_CreateAccount(request *list.Element, Db *sql.DB) (er error) {
	req := request.Value.(*protocol.Request)
	er = nil
	User := new(users.User)
	var answer []byte

	if users.CheckValidMail(req.Spec.(protocol.Log).Email) == true {
		User.Mail = req.Spec.(protocol.Log).Email
		User.NbrBallSend = 0
		User.Coord.Lon = req.Coord.Lon
		User.Log = time.Now()
		User.Coord.Lat = req.Coord.Lat
		User.Followed = list.New()
		User.Possessed = list.New()
		User.HistoricReq = list.New()
		User.Stats = new(users.StatsUser)
		User.Stats.CreationDate = time.Now()
		User.Psd = req.Spec.(protocol.Log).Pswd
		flag, err := Data.Lst_users.Add_new_user(User, Db, req.Spec.(protocol.Log).Pswd)
		er = err
		if err != nil {
			Data.Logger.Println("Error Add_new_user: ", err)
		}
		if flag == true {
			eUser := Data.Lst_users.Ulist.PushFront(User)
			Data.Device.Value.(*devices.Device).Historic.PushFront(eUser)
			/* Begin Stats */
			User.Stats = new(users.StatsUser)
			User.Stats.CreationDate = time.Now()
			Data.Lst_users.NbrUsers++
			/* End Stats */
			answer = Data.Manage_ack(CREATEACCOUNT, 0, int32(1))
		} else {
			er = nil
			answer = Data.Manage_ack(CREATEACCOUNT, 0, int32(0))
		}
	} else {
		answer = Data.Manage_ack(CREATEACCOUNT, 0, int32(0))
	}
	Data.Lst_asw.PushBack(answer)
	return er
}