Insure Everyone नाम की एक कंपनी अपने कर्मचारियों को विदेशी मुद्राओं में वेतन देती है। लेकिन कानूनी ज़रूरतों की वजह से वेतन को स्थानीय मुद्रा में बदलना ज़रूरी है। इसके कर्मचारी दुनिया भर में फैले हुए हैं। Insure Everyone का मानव संसाधन विभाग एक प्रतिभाशाली डेवलपर से मदद माँग रहा है, ताकि एक ऐसा प्रोग्राम बनाया जा सके जो हर कर्मचारी के वेतन को उसकी संबंधित स्थानीय मुद्रा में बदल दे। Insure Everyone किसी बाहरी API से मिलने वाली विनिमय दरों पर निर्भर करती है।
बाहरी विनिमय दर API को देखते हुए, आपको एक फंक्शन लिखना है। यह फंक्शन source currency, salary (स्रोत मुद्रा में) और कर्मचारी की local currency लेता है, और वेतन को स्थानीय मुद्रा में लौटाता है।
बाहरी मुद्रा विनिमय API से मिलने वाला जवाब नीचे दिया गया है:
ध्यान दें: समस्या विवरण को छोटा रखने के लिए
ratesको छोटा कर दिया गया है
{
"base": "EUR",
"rates": {
"AED": 4.167972,
"AFN": 118.91123,
"ALL": 121.353306,
"AMD": 546.175542,
"ANG": 2.035384,
"AOA": 629.106987,
"ARS": 116.624363,
"AUD": 1.580224,
"AWG": 2.042846,
"AZN": 1.92923,
"BAM": 1.95468,
"BBD": 2.26981,
"BDT": 97.024176,
"BGN": 1.956957,
"BHD": 0.428175,
"BIF": 2257.462616,
"BMD": 1.134504,
"BND": 1.534691,
"BOB": 7.773946,
"BRL": 6.394753,
"BSD": 1.134916,
"BTC": 0.000027,
"BTN": 83.896824,
"BWP": 13.167125,
}
}
USD के लिए विनिमय दरें पाने का एक उदाहरण अनुरोध:
GET http://localhost:8080/rates/USD
{
"base": "USD",
"rates": {
"AED": 3.672477643818380310171368756063197,
"AFN": 104.7748962262571579872079201988508,
"ALL": 106.9266548068103418652047146893925,
"AMD": 481.2454276553169780099231576470961,
"ANG": 1.793414695824643301163693331958788,
"AOA": 554.3178661774696212335484143830275,
"ARS": 102.7598951821316197338845611280433,
"AUD": 1.392364754903645275750470737610812,
"AWG": 1.799989602800547350872880138793802,
"AZN": 1.699880432206294535038121596128717,
"BAM": 1.722304900517304728699178180683942,
"BBD": 1.999971804204874171858658003508614,
"BDT": 85.48980589838411660371074286227852,
"BGN": 1.724311207564226937381544618524109,
"BHD": 0.3772729555625457630971671155965922,
"BIF": 1989.092294529751410010035940827599,
"BMD": 0.9996325735447665520331371082216295
// omitted
}
}
salary <= 10000sourceCurrency और targetCurrency ISO मुद्रा कोड (वर्णानुक्रमिक) हैं। टेस्ट इनपुट में अमान्य मुद्रा कोड भी हो सकते हैं।5 दशमलव स्थानों तक मापी जाएगी।आपको अपना कोड नीचे दिए गए फंक्शन के अंदर लिखना है।
# The exchange rate API base URL
configurable string apiUrl = "http://localhost:8080";
# Convert provided salary to local currency.
#
# + salary - Salary in source currency
# + sourceCurrency - Soruce currency
# + localCurrency - Employee's local currency
# + return - Salary in local currency or error
public function convertSalary(decimal salary, string sourceCurrency, string localCurrency) returns decimal|error {
// TODO: Write your code here
return 0;
}
bal run से चलाकर, या यूनिट टेस्ट लिखकर और उन्हें bal test से चलाकर। बैकएंड सेवा http://localhost:8080 पर अपने आप शुरू हो जाएगीमान लीजिए कि बाहरी मुद्रा विनिमय ने यह रूपांतरण दरों वाला जवाब दिया (छोड़ा गया):
{
"base": "USD",
"rates": {
// omitted
"GBP": 0.73584,
// omitted
}
}
फंक्शन को 735.84000 लौटाना चाहिए
मान लीजिए कि बाहरी मुद्रा विनिमय ने यह रूपांतरण दरों वाला जवाब दिया (छोड़ा गया):
{
"base": "GBP",
"rates": {
// omitted
"USD": 1.35898,
// omitted
}
}
फंक्शन को 1358.9800 लौटाना चाहिए