Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import { database } from '@data/firebase';

export async function GetFranchiseRepository(): Promise<string[]> {
try {
let franchises = []
const franchisesSnapshot = await database.collection('franchises').get();
if (franchisesSnapshot.empty) {
console.log("No franchises.");
return [];
}
for (const doc of franchisesSnapshot.docs) {
const data = doc.id;
// console.log("GetFranchiseRepository data: ", JSON.stringify(data));
franchises.push(data.toLowerCase())
}
// console.log("GetFranchiseRepository franchises: ", franchises)
return franchises
} catch (error) {
console.error('Error fetching franchises data:', error);
throw error;
}
}


1 change: 1 addition & 0 deletions functions/src/data/franchise/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export {GetFranchiseRepository} from "./get/franchise/GetFranchiseRepository"
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ async function _GetSurcharge(placeId: string): Promise<GetSurchargesRepositoryRe
surchargeAmount: surcharge.surchargeAmount,
surchargeStatus: surcharge.surchargeStatus
};
console.log("Surcharge fetched successfully:", result);
return result;
}
} catch (error) {
Expand Down
19 changes: 17 additions & 2 deletions functions/src/domain/place/get/place/getPlaceUsecase.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,25 @@ import { GetPlaceUsecaseRequest } from "./entity/GetPlaceUsecaseRequest";
import { GetPlaceUsecaseResponse } from "./entity/GetPlaceUsecaseResponse";
import { GetSurchargesRepository } from '@data/surcharge'
import { SurchargeStatus } from "@data/surcharge"
import { GetFranchiseRepository } from "@data/franchise";

export const getPlaceUsecase = async (request: GetPlaceUsecaseRequest): Promise<GetPlaceUsecaseResponse> => {
const result = await GetPlaceRepository(request.id);
const surchargeData = await GetSurchargesRepository(request.id);
const franchisesNames = await GetFranchiseRepository()

const name = result.displayName.text
let rate = surchargeData?.rate ?? undefined
let status = surchargeData?.surchargeStatus ?? SurchargeStatus.UNKNOWN

franchisesNames.forEach(element => {
if (status === SurchargeStatus.UNKNOWN) {
if(name.toLowerCase().includes(element)){
status = SurchargeStatus.AUTO_GENERATED
rate = 0.0
}
}
})

return {
id: result.id,
Expand All @@ -24,8 +39,8 @@ export const getPlaceUsecase = async (request: GetPlaceUsecaseRequest): Promise<
latitude: result.location?.latitude ?? 0,
longitude: result.location?.longitude ?? 0,
},
rate: surchargeData?.rate ?? undefined,
rate: rate,
reportedDate: surchargeData?.reportedDate ?? undefined, // Default to 0 if reportedDate is undefined
surchargeStatus: surchargeData?.surchargeStatus ?? SurchargeStatus.UNKNOWN,
surchargeStatus: status,
};
};
29 changes: 24 additions & 5 deletions functions/src/domain/place/get/places/GetPlacesUsecase.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { GetSurchargesRepository, SurchargeStatus } from "@data/surcharge"
import { GetPlacesUsecaseRequest } from "./entity/GetPlacesUsecaseRequest"
import { GetPlacesUsecaseResponse } from "./entity/GetPlacesUsecaseResponse"
import { GetPlacesRepository } from "@data/place"
import { GetFranchiseRepository } from "@data/franchise"
import { locationRestrictionOfNZ } from "@shared/constants"

export async function GetPlacesUsecase(request: GetPlacesUsecaseRequest | string[]): Promise<GetPlacesUsecaseResponse> {
Expand All @@ -17,7 +18,7 @@ export async function GetPlacesUsecase(request: GetPlacesUsecaseRequest | string
resultPlaces = await GetPlacesRepository(allSurchargesIds)

// const resultSurcharges = await GetSurchargesRepository(resultPlaceIds)

const placesWithSurcharges = resultPlaces.places.map((place) => {
return {
id: place.id,
Expand Down Expand Up @@ -45,12 +46,12 @@ export async function GetPlacesUsecase(request: GetPlacesUsecaseRequest | string
surchargeStatus: allSurcharges.find((surcharge) => surcharge.id === place.id)?.surchargeStatus as SurchargeStatus,
}
})

return {
places: placesWithSurcharges,
nextPageToken: undefined,
}

} catch (error) {
throw error
}
Expand All @@ -76,8 +77,26 @@ export async function GetPlacesUsecase(request: GetPlacesUsecaseRequest | string
})

try {

const resultSurcharges = await GetSurchargesRepository(resultPlaceIds)
const franchisesNames = await GetFranchiseRepository()

const placesWithSurcharges = resultPlaces.places.map((place) => {

const name = place.displayName.text

let rate = resultSurcharges.find((surcharge) => surcharge.id === place.id)?.rate
let status = resultSurcharges.find((surcharge) => surcharge.id === place.id)?.surchargeStatus as SurchargeStatus ?? SurchargeStatus.UNKNOWN

franchisesNames.forEach(element => {
if (status === SurchargeStatus.UNKNOWN) {
if(name.toLowerCase().includes(element)){
status = SurchargeStatus.AUTO_GENERATED
rate = 0.0
}
}
})

return {
id: place.id,
displayName: {
Expand All @@ -96,8 +115,8 @@ export async function GetPlacesUsecase(request: GetPlacesUsecaseRequest | string
longitude: place.location.longitude,
}
: undefined,
rate: resultSurcharges.find((surcharge) => surcharge.id === place.id)?.rate,
surchargeStatus: resultSurcharges.find((surcharge) => surcharge.id === place.id)?.surchargeStatus as SurchargeStatus,
rate: rate,
surchargeStatus: status
}
})

Expand Down