11import firebase from "firebase-setup" ;
22import type { NextApiRequest , NextApiResponse } from "next" ;
3- import { doc , getDoc , setDoc , updateDoc } from "firebase/firestore" ;
3+ import { doc , getDoc } from "firebase/firestore" ;
44import { signInWithEmailAndPassword } from "firebase/auth" ;
5+ import { TransferService } from "api/services/transfer" ;
6+ import dbConnect from "lib/mongodb" ;
7+
8+ const transferService = new TransferService ( ) ;
59
610const getRequest = async ( req : NextApiRequest , res : NextApiResponse ) => {
711 const { id } = req . query ;
12+
13+ if ( ! id ) {
14+ return res . status ( 400 ) . json ( { message : "Missing id" } ) ;
15+ }
16+
17+ try {
18+ const transfer = await transferService . getTransfer ( id as string ) ;
19+ return res . status ( 200 ) . json ( transfer ) ;
20+ } catch ( e ) { }
21+
822 if ( process . env . NODE_ENV !== "development" && firebase . auth ) {
923 await signInWithEmailAndPassword (
1024 firebase . auth ,
@@ -27,30 +41,21 @@ const patchRequest = async (req: NextApiRequest, res: NextApiResponse) => {
2741 if ( ! id ) {
2842 return res . status ( 400 ) . json ( { message : "Missing id" } ) ;
2943 }
30- if ( process . env . NODE_ENV !== "development" && firebase . auth ) {
31- await signInWithEmailAndPassword (
32- firebase . auth ,
33- process . env . FIREBASE_AUTH_EMAIL ! ,
34- process . env . FIREBASE_AUTH_PASSWORD !
35- ) ;
36- }
37- const document = doc ( firebase . firestore , "transfers" , id as string ) ;
38-
39- const transferBody = req . body ;
40-
41- const results = await getDoc ( document ) ;
4244
43- if ( results . exists ( ) ) {
44- transferBody . updatedAt = Date . now ( )
45- await updateDoc ( document , transferBody ) ;
46- } else {
47- await setDoc ( document , transferBody ) ;
45+ try {
46+ const updated = await transferService . upsertTransfer ( req . body ) ;
47+ res . status ( 200 ) . json ( updated ) ;
48+ } catch ( e ) {
49+ if ( e instanceof Error ) {
50+ res . status ( 500 ) . json ( { message : e . message } ) ;
51+ } else {
52+ res . status ( 500 ) . json ( { message : "Unknown error" } ) ;
53+ }
4854 }
49- const updated = await getDoc ( document ) ;
50- res . status ( 200 ) . json ( updated . data ( ) ) ;
5155} ;
5256
5357async function handler ( req : NextApiRequest , res : NextApiResponse ) {
58+ await dbConnect ( ) ;
5459 if ( req . method === "GET" ) {
5560 await getRequest ( req , res ) ;
5661 return ;
0 commit comments