Agregada store de vuex para guardar información de la sesión tras login + ruta y controller + resource reducido de grupo de compra para pedidos
This commit is contained in:
parent
6d3173cd1f
commit
a485994a72
7 changed files with 115 additions and 0 deletions
|
@ -4,6 +4,7 @@ namespace App\Http\Controllers\Api;
|
||||||
|
|
||||||
use App\GrupoDeCompra;
|
use App\GrupoDeCompra;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Http\Resources\GrupoDeCompraReducidoResource;
|
||||||
use App\Http\Resources\GrupoDeCompraResource;
|
use App\Http\Resources\GrupoDeCompraResource;
|
||||||
|
|
||||||
class GrupoDeCompraController extends Controller
|
class GrupoDeCompraController extends Controller
|
||||||
|
@ -16,4 +17,8 @@ class GrupoDeCompraController extends Controller
|
||||||
{
|
{
|
||||||
return new GrupoDeCompraResource($grupoDeCompra);
|
return new GrupoDeCompraResource($grupoDeCompra);
|
||||||
}
|
}
|
||||||
|
public function reducido(GrupoDeCompra $grupoDeCompra)
|
||||||
|
{
|
||||||
|
return new GrupoDeCompraReducidoResource($grupoDeCompra);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
39
app/Http/Controllers/UserController.php
Normal file
39
app/Http/Controllers/UserController.php
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use App\GrupoDeCompra;
|
||||||
|
use App\Http\Resources\GrupoDeCompraReducidoResource;
|
||||||
|
use App\Http\Resources\GrupoDeCompraResource;
|
||||||
|
use App\UserRole;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use App\User;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
|
class UserController extends Controller
|
||||||
|
{
|
||||||
|
public function session(Request $request)
|
||||||
|
{
|
||||||
|
$user = Auth::user();
|
||||||
|
$role = UserRole::find($user->role_id);
|
||||||
|
$grupo_de_compra = GrupoDeCompra::find($user->grupo_de_compra_id);
|
||||||
|
$result = [
|
||||||
|
'role_id' => $user->role_id,
|
||||||
|
'grupo_de_compra' => null,
|
||||||
|
];
|
||||||
|
switch ($role->nombre ?? 'error') {
|
||||||
|
case 'barrio':
|
||||||
|
$result['grupo_de_compra'] = new GrupoDeCompraReducidoResource($grupo_de_compra);
|
||||||
|
break;
|
||||||
|
case 'admin_barrio':
|
||||||
|
$result['grupo_de_compra'] = new GrupoDeCompraResource($grupo_de_compra);
|
||||||
|
break;
|
||||||
|
case 'comision':
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
abort(400, 'Rol invalido');
|
||||||
|
}
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
}
|
22
app/Http/Resources/GrupoDeCompraReducidoResource.php
Normal file
22
app/Http/Resources/GrupoDeCompraReducidoResource.php
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Resources;
|
||||||
|
|
||||||
|
use Illuminate\Http\Resources\Json\JsonResource;
|
||||||
|
|
||||||
|
class GrupoDeCompraReducidoResource extends JsonResource
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Transform the resource into an array.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function toArray($request): array {
|
||||||
|
return [
|
||||||
|
'id' => $this->id,
|
||||||
|
'nombre' => $this->nombre,
|
||||||
|
'devoluciones_habilitadas' => $this->devoluciones_habilitadas,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
2
resources/js/app.js
vendored
2
resources/js/app.js
vendored
|
@ -18,6 +18,7 @@ window.bulmaToast = require('bulma-toast');
|
||||||
* Eg. ./components/ExampleComponent.vue -> <example-component></example-component>
|
* Eg. ./components/ExampleComponent.vue -> <example-component></example-component>
|
||||||
*/
|
*/
|
||||||
import './components';
|
import './components';
|
||||||
|
import store from "./store";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constants
|
* Constants
|
||||||
|
@ -78,6 +79,7 @@ const app = new Vue({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
store.dispatch('session/fetchSession');
|
||||||
Event.$on('obtener-sesion', () => {
|
Event.$on('obtener-sesion', () => {
|
||||||
axios.get('/subpedidos/obtener_sesion')
|
axios.get('/subpedidos/obtener_sesion')
|
||||||
.then(response => {
|
.then(response => {
|
||||||
|
|
11
resources/js/store/index.js
vendored
Normal file
11
resources/js/store/index.js
vendored
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
import Vue from 'vue';
|
||||||
|
import Vuex from 'vuex';
|
||||||
|
import session from './modules/session';
|
||||||
|
|
||||||
|
Vue.use(Vuex);
|
||||||
|
|
||||||
|
export default new Vuex.Store({
|
||||||
|
modules: {
|
||||||
|
session,
|
||||||
|
},
|
||||||
|
});
|
32
resources/js/store/modules/session.js
vendored
Normal file
32
resources/js/store/modules/session.js
vendored
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
const state = {
|
||||||
|
role_id: null,
|
||||||
|
grupo_de_compra_id: null,
|
||||||
|
};
|
||||||
|
|
||||||
|
const mutations = {
|
||||||
|
SET_SESSION(state, { role_id, grupo_de_compra_id }) {
|
||||||
|
state.role_id = role_id;
|
||||||
|
state.grupo_de_compra_id = grupo_de_compra_id;
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
const actions = {
|
||||||
|
async fetchSession({ commit }) {
|
||||||
|
const response = await axios.get('/session');
|
||||||
|
console.log(response.data);
|
||||||
|
commit('SET_SESSION', {
|
||||||
|
role_id: response.data.role_id,
|
||||||
|
grupo_de_compra_id: response.data.grupo_de_compra_id,
|
||||||
|
});
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
const getters = {};
|
||||||
|
|
||||||
|
export default {
|
||||||
|
namespaced: true,
|
||||||
|
state,
|
||||||
|
mutations,
|
||||||
|
actions,
|
||||||
|
getters,
|
||||||
|
};
|
|
@ -24,6 +24,10 @@ Auth::routes(['register' => false]);
|
||||||
|
|
||||||
Route::get('/', 'RouteController@home')->name('home');
|
Route::get('/', 'RouteController@home')->name('home');
|
||||||
|
|
||||||
|
Route::middleware('auth')->group(function () {
|
||||||
|
Route::get('/session', 'UserController@session')->name('session');
|
||||||
|
});
|
||||||
|
|
||||||
Route::middleware(['auth', 'role:barrio'])->group( function() {
|
Route::middleware(['auth', 'role:barrio'])->group( function() {
|
||||||
Route::get('/productos', 'ProductoController@index')->name('productos.index');
|
Route::get('/productos', 'ProductoController@index')->name('productos.index');
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue