feat: redesign site as a modern developer portfolio
- New home page: hero, stats, about, focus areas, stack, projects, contact - Light/dark theme with system default and persisted toggle - Content centralised in data/profile.js - Restyle /rates to match; remove it from nav and projects - Afriex: log a clear error now that its API requires a device id Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
5c40a64c42
commit
3bb0a5e4a9
@@ -240,7 +240,11 @@ export default async (req, res) => {
|
||||
.catch((error) => reject(error));
|
||||
})
|
||||
.then((result) => {
|
||||
const ngnRate = result.rates.EUR.NGN;
|
||||
// Afriex now rejects unauthenticated requests with {"message":"Device id missing"}
|
||||
const ngnRate = result?.rates?.EUR?.NGN;
|
||||
if (!ngnRate) {
|
||||
throw new Error(`Unexpected response: ${result?.message || JSON.stringify(result).slice(0, 200)}`);
|
||||
}
|
||||
return {
|
||||
rate: parseFloat(ngnRate).toFixed(2),
|
||||
provider: "Afriex",
|
||||
@@ -250,7 +254,7 @@ export default async (req, res) => {
|
||||
};
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error("Error calling Afriex:", error);
|
||||
console.error("Error calling Afriex:", error.message);
|
||||
return createDefaultErrorResponse("Afriex", "https://www.afriex.com/");
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user