|
|
|
@@ -49,14 +49,14 @@ export async function GET() {
|
|
|
|
|
const admin = createAdminSupabaseClient();
|
|
|
|
|
let { data: profile, error: profileError } = await supabase
|
|
|
|
|
.from("profiles")
|
|
|
|
|
.select("credits,active_birth_time,birth_time_status,birth_date,reported_birth_time,birth_time_source,birth_time_period,declared_window_start,declared_window_end,birth_time_clue,uncertainty_before_minutes,uncertainty_after_minutes,country_code,province_code,city_code,district_code,latitude,longitude,timezone_offset,birth_place_label,birth_place_type,birth_place_provider,birth_place_provider_id,timezone_id,timezone_source,ayanamsa,name,birth_time,rectification_case_id")
|
|
|
|
|
.select("credits,active_birth_time,birth_time_status,birth_date,active_birth_date,active_birth_timezone_offset,active_birth_provenance,reported_birth_time,birth_time_source,birth_time_period,declared_window_start,declared_window_end,birth_time_clue,uncertainty_before_minutes,uncertainty_after_minutes,country_code,province_code,city_code,district_code,latitude,longitude,timezone_offset,birth_place_label,birth_place_type,birth_place_provider,birth_place_provider_id,timezone_id,timezone_source,ayanamsa,name,birth_time,rectification_case_id")
|
|
|
|
|
.eq("id", userId)
|
|
|
|
|
.single();
|
|
|
|
|
|
|
|
|
|
if (profileError && isMissingProfileColumn(profileError)) {
|
|
|
|
|
const withoutDeclaredWindow = await supabase
|
|
|
|
|
.from("profiles")
|
|
|
|
|
.select("credits,active_birth_time,birth_time_status,birth_date,reported_birth_time,birth_time_source,birth_time_period,birth_time_clue,uncertainty_before_minutes,uncertainty_after_minutes,country_code,province_code,city_code,district_code,latitude,longitude,timezone_offset,birth_place_label,birth_place_type,birth_place_provider,birth_place_provider_id,timezone_id,timezone_source,name,birth_time,rectification_case_id")
|
|
|
|
|
.select("credits,active_birth_time,birth_time_status,birth_date,active_birth_date,active_birth_timezone_offset,active_birth_provenance,reported_birth_time,birth_time_source,birth_time_period,birth_time_clue,uncertainty_before_minutes,uncertainty_after_minutes,country_code,province_code,city_code,district_code,latitude,longitude,timezone_offset,birth_place_label,birth_place_type,birth_place_provider,birth_place_provider_id,timezone_id,timezone_source,name,birth_time,rectification_case_id")
|
|
|
|
|
.eq("id", userId)
|
|
|
|
|
.single();
|
|
|
|
|
if (!withoutDeclaredWindow.error && withoutDeclaredWindow.data) {
|
|
|
|
@@ -70,7 +70,7 @@ export async function GET() {
|
|
|
|
|
} else if (withoutDeclaredWindow.error && isMissingProfileColumn(withoutDeclaredWindow.error)) {
|
|
|
|
|
const fallback = await supabase
|
|
|
|
|
.from("profiles")
|
|
|
|
|
.select("credits,active_birth_time,birth_time_status,birth_date,reported_birth_time,birth_time_source,birth_time_period,birth_time_clue,uncertainty_before_minutes,uncertainty_after_minutes,country_code,province_code,city_code,district_code,latitude,longitude,timezone_offset,name,birth_time,rectification_case_id")
|
|
|
|
|
.select("credits,active_birth_time,birth_time_status,birth_date,active_birth_date,active_birth_timezone_offset,active_birth_provenance,reported_birth_time,birth_time_source,birth_time_period,birth_time_clue,uncertainty_before_minutes,uncertainty_after_minutes,country_code,province_code,city_code,district_code,latitude,longitude,timezone_offset,name,birth_time,rectification_case_id")
|
|
|
|
|
.eq("id", userId)
|
|
|
|
|
.single();
|
|
|
|
|
profile = fallback.data ? {
|
|
|
|
@@ -191,13 +191,13 @@ export async function PATCH(request: Request) {
|
|
|
|
|
const admin = createAdminSupabaseClient();
|
|
|
|
|
let { data: currentProfile, error: currentProfileError } = await admin
|
|
|
|
|
.from("profiles")
|
|
|
|
|
.select("birth_date,birth_time,reported_birth_time,active_birth_time,birth_time_source,birth_time_period,declared_window_start,declared_window_end,birth_time_clue,uncertainty_before_minutes,uncertainty_after_minutes,birth_time_status,rectification_case_id,country_code,province_code,city_code,district_code,latitude,longitude,timezone_offset,birth_place_label,birth_place_type,birth_place_provider,birth_place_provider_id,timezone_id,timezone_source")
|
|
|
|
|
.select("birth_date,active_birth_date,active_birth_timezone_offset,active_birth_provenance,birth_time,reported_birth_time,active_birth_time,birth_time_source,birth_time_period,declared_window_start,declared_window_end,birth_time_clue,uncertainty_before_minutes,uncertainty_after_minutes,birth_time_status,rectification_case_id,country_code,province_code,city_code,district_code,latitude,longitude,timezone_offset,birth_place_label,birth_place_type,birth_place_provider,birth_place_provider_id,timezone_id,timezone_source")
|
|
|
|
|
.eq("id", userId)
|
|
|
|
|
.maybeSingle();
|
|
|
|
|
if (currentProfileError && isMissingProfileColumn(currentProfileError)) {
|
|
|
|
|
const withoutDeclaredWindow = await admin
|
|
|
|
|
.from("profiles")
|
|
|
|
|
.select("birth_date,birth_time,reported_birth_time,active_birth_time,birth_time_source,birth_time_period,birth_time_clue,uncertainty_before_minutes,uncertainty_after_minutes,birth_time_status,rectification_case_id,country_code,province_code,city_code,district_code,latitude,longitude,timezone_offset,birth_place_label,birth_place_type,birth_place_provider,birth_place_provider_id,timezone_id,timezone_source")
|
|
|
|
|
.select("birth_date,active_birth_date,active_birth_timezone_offset,active_birth_provenance,birth_time,reported_birth_time,active_birth_time,birth_time_source,birth_time_period,birth_time_clue,uncertainty_before_minutes,uncertainty_after_minutes,birth_time_status,rectification_case_id,country_code,province_code,city_code,district_code,latitude,longitude,timezone_offset,birth_place_label,birth_place_type,birth_place_provider,birth_place_provider_id,timezone_id,timezone_source")
|
|
|
|
|
.eq("id", userId)
|
|
|
|
|
.maybeSingle();
|
|
|
|
|
if (!withoutDeclaredWindow.error && withoutDeclaredWindow.data) {
|
|
|
|
@@ -210,7 +210,7 @@ export async function PATCH(request: Request) {
|
|
|
|
|
} else if (withoutDeclaredWindow.error && isMissingProfileColumn(withoutDeclaredWindow.error)) {
|
|
|
|
|
const fallback = await admin
|
|
|
|
|
.from("profiles")
|
|
|
|
|
.select("birth_date,birth_time,reported_birth_time,active_birth_time,birth_time_source,birth_time_period,birth_time_clue,uncertainty_before_minutes,uncertainty_after_minutes,birth_time_status,rectification_case_id,country_code,province_code,city_code,district_code")
|
|
|
|
|
.select("birth_date,active_birth_date,active_birth_timezone_offset,active_birth_provenance,birth_time,reported_birth_time,active_birth_time,birth_time_source,birth_time_period,birth_time_clue,uncertainty_before_minutes,uncertainty_after_minutes,birth_time_status,rectification_case_id,country_code,province_code,city_code,district_code")
|
|
|
|
|
.eq("id", userId)
|
|
|
|
|
.maybeSingle();
|
|
|
|
|
currentProfile = fallback.data ? {
|
|
|
|
@@ -292,14 +292,14 @@ export async function PATCH(request: Request) {
|
|
|
|
|
return admin
|
|
|
|
|
.from("profiles")
|
|
|
|
|
.upsert(values, { onConflict: "id" })
|
|
|
|
|
.select("id")
|
|
|
|
|
.select("id,birth_time_status,active_birth_time,active_birth_date,active_birth_timezone_offset")
|
|
|
|
|
.maybeSingle();
|
|
|
|
|
}
|
|
|
|
|
let query = admin.from("profiles").update(values).eq("id", userId);
|
|
|
|
|
if (invalidatesUnconfirmedApplication) {
|
|
|
|
|
query = applyAccountProfileConcurrencyGuards(query, currentProfile);
|
|
|
|
|
}
|
|
|
|
|
return query.select("id").maybeSingle();
|
|
|
|
|
return query.select("id,birth_time_status,active_birth_time,active_birth_date,active_birth_timezone_offset").maybeSingle();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let { data, error } = await writeProfile(withCoordinates);
|
|
|
|
@@ -345,7 +345,13 @@ export async function PATCH(request: Request) {
|
|
|
|
|
|
|
|
|
|
return NextResponse.json({
|
|
|
|
|
ok: true,
|
|
|
|
|
birthTime: resolveAppliedAccountBirthTime(currentProfile, applicationPatch),
|
|
|
|
|
birthTime: {
|
|
|
|
|
...resolveAppliedAccountBirthTime(currentProfile, applicationPatch),
|
|
|
|
|
status: data.birth_time_status,
|
|
|
|
|
activeTime: data.active_birth_time,
|
|
|
|
|
activeDate: data.active_birth_date ?? null,
|
|
|
|
|
activeTimezoneOffset: data.active_birth_timezone_offset ?? null,
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
} catch (error) {
|
|
|
|
|
if (isSupabaseConfigurationError(error)) {
|
|
|
|
|