UNPKG

magfa-api

Version:

Magfa SMS API client for JS/TS/ESM/Node.js

3 lines (2 loc) 6.49 kB
function s(){return s=Object.assign?Object.assign.bind():function(s){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(s[i]=t[i])}return s},s.apply(this,arguments)}class e{constructor(s,e,t,i){return this.apiUrl="https://sms.magfa.com/api/http/sms/v2",this.username=void 0,this.domain=void 0,this.password=void 0,this.from=void 0,this.authHeader=void 0,this.username=s||"",this.password=e,this.domain=t,this.from=i,this.authHeader="Basic "+Buffer.from(`${this.username}/${this.domain}:${this.password}`).toString("base64"),this}async Api(s,e="GET",i){var a;let r,o;try{r=await fetch(`${this.apiUrl}/${s}`,{headers:{Accept:"application/json","Content-Type":"application/json",Authorization:this.authHeader},method:e,body:i&&JSON.stringify(i)})}catch(s){throw new t(void 0,"Server connection failed")}try{o=await r.json()}catch(s){throw new t(void 0,"The server didn't respond correctly")}if(void 0===(null==(a=o)?void 0:a.status))throw new t(void 0,"The server didn't respond correctly");if(0===o.status)return o;if(Object.keys(n).includes(""+o.status))throw new t(o.status);return o}async Send({recipients:e,messages:n,encodings:a,uids:r,udhs:o}){if(!e||!n)throw new t(void 0,"recipients and messages should not be empty");if("string"==typeof e&&(e=[e]),"string"==typeof n&&(n=[n]),!n.length||e.length!==n.length&&1!==n.length)throw new t(void 0,"recipients and messages should have the same length");const c=Array(e.length).fill(this.from);a&&!Array.isArray(a)&&(a=Array(e.length).fill(a));const d={recipients:e,messages:n,senders:c,encodings:a,uids:r,udhs:o},h=await this.Api("send","POST",d),u=[];let l=0,p=0;return h.messages.map(e=>{if(0===e.status){const t=s({},e,{message:"پیام با موفقیت رسید"});u.push(t),l++}else{const t=s({},e,{message:i(e.status)});u.push(t),p++}}),s({},h,{messages:u,count:{success:l,fail:p}})}async Statuses(s){return await this.Api(`statuses/${s.join(",")}`)}async Mid(e){const t=await this.Api(`mid/${e}`);return s({},t,{mid:t.mid||void 0})}async Balance(){return await this.Api("balance")}async ReceivedMessages(s=100){return await this.Api(`messages/${s}`)}}class t extends Error{constructor(s,e){let t,a;s&&Object.keys(n).includes(""+s)?(t=i(s),a=s):(t=e||"Unknown Magfa error",a=void 0),super(t),this.status=void 0,this.message=t,this.status=a}}function i(s){return 0===s?"success":Object.keys(n).includes(""+s)?n[s]:""}const n={1:"شماره گیرنده نادرست است",2:"شماره فرستنده نادرست است",3:"پارامتر encoding نامعتبر است. (بررسی صحت و هم‌خوانی متن پیامک با encoding انتخابی)",4:"پارامتر mclass نامعتبر است",6:"پارامتر UDH نامعتبر است",13:"محتویات پیامک (ترکیب UDH و متن) خالی است. (بررسی دوباره‌ی متن پیامک و پارامتر UDH)",14:"مانده اعتبار ریالی مورد نیاز برای ارسال پیامک کافی نیست",15:"سرور در هنگام ارسال پیام مشغول برطرف نمودن ایراد داخلی بوده است. (ارسال مجدد درخواست)",16:"حساب غیرفعال است. (تماس با واحد فروش سیستم‌های ارتباطی)",17:"حساب منقضی شده است. (تماس با واحد فروش سیستم‌های ارتباطی)",18:"نام کاربری و یا کلمه عبور نامعتبر است. (بررسی مجدد نام کاربری و کلمه عبور)",19:"درخواست معتبر نیست. (ترکیب نام کاربری، رمز عبور و دامنه اشتباه است. تماس با واحد فروش برای دریافت کلمه عبور جدید)",20:"شماره فرستنده به حساب تعلق ندارد",22:"این سرویس برای حساب فعال نشده است",23:"در حال حاضر امکان پردازش درخواست جدید وجود ندارد، لطفا دوباره سعی کنید. (ارسال مجدد درخواست)",24:"شناسه پیامک معتبر نیست. (ممکن است شناسه پیامک اشتباه و یا متعلق به پیامکی باشد که بیش از یک روز از ارسال آن گذشته)",25:"نام متد درخواستی معتبر نیست. (بررسی نگارش نام متد با توجه به بخش متدها در این راهنما)",27:"شماره گیرنده در لیست سیاه اپراتور قرار دارد. (ارسال پیامک‌های تبلیغاتی برای این شماره امکان‌پذیر نیست)",28:"شماره گیرنده، بر اساس پیش‌شماره در حال حاضر در مگفا مسدود است",29:"آدرس IP مبدا، اجازه دسترسی به این سرویس را ندارد",30:"تعداد بخش‌های پیامک بیش از حد مجاز استاندارد (۲۶۵ عدد) است",31:"داده‌های موردنیاز برای ارسال کافی نیستند. (اصلاح HTTP Request)",101:"طول آرایه پارامتر messageBodies با طول آرایه گیرندگان تطابق ندارد",102:"طول آرایه پارامتر messageClass با طول آرایه گیرندگان تطابق ندارد",103:"طول آرایه پارامتر senderNumbers با طول آرایه گیرندگان تطابق ندارد",104:"طول آرایه پارامتر udhs با طول آرایه گیرندگان تطابق ندارد",105:"طول آرایه پارامتر priorities با طول آرایه گیرندگان تطابق ندارد",106:"آرایه‌ی گیرندگان خالی است",107:"طول آرایه پارامتر گیرندگان بیشتر از طول مجاز است",108:"آرایه‌ی فرستندگان خالی است",109:"طول آرایه پارامتر encoding با طول آرایه گیرندگان تطابق ندارد",110:"طول آرایه پارامتر checkingMessageIds با طول آرایه گیرندگان تطابق ندارد"},a={[-1]:"شناسه موجود نیست (شناسه نادرست یا گذشت بیش از ۲۴ ساعت از ارسال پیامک)",0:"وضعیتی دریافت نشده",1:"رسیده به گوشی",2:"نرسیده به گوشی",8:"رسیده به مخابرات",16:"نرسیده به مخابرات"};export{i as GetStatusText,e as Magfa,t as MagfaError,e as default,n as magfaErrors,a as messageStatuses}; //# sourceMappingURL=magfa.modern.js.map