11import apiCep from "@/api" ;
22import { v4 as uuidv4 } from "uuid" ;
33import { IData } from "@/types/checkout" ;
4- import { IFrete } from "@/types/store" ;
4+ import { IFrete , IPedido } from "@/types/store" ;
55import {
66 DateUsuario ,
77 ILogin ,
@@ -159,12 +159,17 @@ export const authenticateUserFetch = async (
159159 try {
160160 const usuarios = getStorage ( "user" ) as UsuarioLocalStorage [ ] ;
161161 /* verifica se o email existe */
162- if ( ! Array . isArray ( usuarios ) || ! usuarios . some ( ( u ) => u . email === data . email ) ) {
162+ if (
163+ ! Array . isArray ( usuarios ) ||
164+ ! usuarios . some ( ( u ) => u . email === data . email )
165+ ) {
163166 reject ( new Error ( "Email não cadastrado" ) ) ;
164167 return ;
165168 }
166169
167- const user = usuarios . find ( ( user ) => user . email === data . email ) as UsuarioLocalStorage ;
170+ const user = usuarios . find (
171+ ( user ) => user . email === data . email
172+ ) as UsuarioLocalStorage ;
168173 const isValid = await verifyPassword (
169174 data . password ,
170175 user . salt ,
@@ -202,13 +207,13 @@ export const authenticateUserFetch = async (
202207 } ) ;
203208} ;
204209/* Função para verificar se o usuário está logado */
205- export const checkAuthenticated = ( ) : Promise < UsuarioState > => {
210+ export const checkAuthenticated = async ( ) : Promise < UsuarioState > => {
206211 return new Promise ( ( resolve , reject ) => {
207212 try {
208213 const validToken = getAccessToken ( ) ;
209214 const dataUser = getSessionStorage ( "dataUser" ) as UsuarioState ;
210215
211- if ( ! validToken || validToken !== dataUser . accessToken ) {
216+ if ( ! validToken || validToken !== dataUser . accessToken ) {
212217 console . warn ( "Token inválido ou expirado" ) ;
213218 resolve ( { isLogado : false } as UsuarioState ) ;
214219 return ;
@@ -227,3 +232,64 @@ export const checkAuthenticated = (): Promise<UsuarioState> => {
227232 }
228233 } ) ;
229234} ;
235+
236+ /* Api simular pedido */
237+
238+ export const getOrder = async ( ) : Promise < IPedido [ ] > => {
239+ return new Promise ( ( resolve , reject ) => {
240+ try {
241+ /* Verifica se o usuário está logado */
242+ const user = getSessionStorage ( "dataUser" ) as UsuarioState ;
243+ if ( ! user ) {
244+ console . warn ( "Usuário nao autenticado" , user ) ;
245+ reject ( new Error ( "Usuário não autenticado" ) ) ;
246+ return ;
247+ }
248+ /* Pegando os pedidos do localStorage */
249+ const pedidos = getStorage ( "pedidos" ) as IPedido [ ] ;
250+ if ( Array . isArray ( pedidos ) ) {
251+ resolve ( pedidos . filter ( ( p ) => p . idUser === user . id ) ) ;
252+ return ;
253+ }
254+ resolve ( [ ] ) ;
255+ } catch ( error ) {
256+ console . error ( "Erro ao buscar pedidos:" , error ) ;
257+ reject ( error ) ;
258+ }
259+ } ) ;
260+ }
261+ export const createOrder = async ( newPedidos : IPedido ) : Promise < IPedido [ ] > => {
262+ return new Promise ( ( resolve , reject ) => {
263+ try {
264+ console . log ( "Criando pedido:" , newPedidos ) ;
265+ /* Verifica se o usuário está logado */
266+ const user = getSessionStorage ( "dataUser" ) as UsuarioState ;
267+ if ( ! user ) {
268+ console . warn ( "Usuário nao autenticado" , user ) ;
269+ reject ( new Error ( "Usuário não autenticado" ) ) ;
270+ return ;
271+ }
272+
273+ /* Adicionando o id do usuário */
274+ const addUserPedido = {
275+ ...newPedidos ,
276+ idUser : user . id ,
277+ id : uuidv4 ( ) ,
278+ } ;
279+
280+ /* Adicionando o pedido */
281+ const pedidos = getStorage ( "pedidos" ) as IPedido [ ] ;
282+ if ( Array . isArray ( pedidos ) ) {
283+ pedidos . push ( addUserPedido ) ;
284+ setStorage ( "pedidos" , pedidos ) ;
285+ resolve ( pedidos . filter ( ( p ) => p . idUser === user . id ) ) ;
286+ return ;
287+ }
288+ setStorage ( "pedidos" , [ addUserPedido ] ) ;
289+ resolve ( [ addUserPedido ] ) ;
290+ } catch ( error ) {
291+ console . error ( "Erro ao adicionar pedido:" , error ) ;
292+ reject ( error ) ;
293+ }
294+ } ) ;
295+ } ;
0 commit comments