UNPKG

vesal

Version:

Armaghan Vesal SMS API client for JS/TS/ESM/Node.js

3 lines (2 loc) 4.41 kB
function e(){return e=Object.assign?Object.assign.bind():function(e){for(var s=1;s<arguments.length;s++){var t=arguments[s];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},e.apply(this,arguments)}class s{constructor(e,s,t){return this.apiUrl="http://vesal.armaghan.net:8080/rest",this.username=void 0,this.password=void 0,this.from=void 0,this.username=e||"",this.password=s,this.from=t,this}async Api(s,r="POST",n){let i,a;n=e({},n,{username:this.username,password:this.password});try{i=await fetch(`${this.apiUrl}/${s}`,{headers:{Accept:"application/json","Content-Type":"application/json"},method:r,body:n&&JSON.stringify(n)})}catch(e){throw new t(void 0,"Server connection failed")}try{a=await i.json()}catch(e){throw new t(void 0,"The server didn't respond correctly")}if(!a.references)throw new t(void 0,"The server didn't respond correctly");return a}async Send({recipients:s,messages:r,from:n}){var i;if(!s||!r)throw new t(void 0,"recipients and messages should not be empty");"string"==typeof s&&(s=[s]),n||(n=this.from);const a=Array.isArray(r)||Array.isArray(n);if(a){if(!s.length)throw new t(void 0,"recipients and messages should have the same length");if(Array.isArray(r)&&!r.length)throw new t(void 0,"recipients and messages should have the same length");if("string"==typeof r&&(r=Array(s.length).fill(r)),"string"==typeof n&&(n=Array(s.length).fill(n)),s.length!==r.length||s.length!==n.length)throw new t(void 0,"recipients and messages should have the same length")}const o=e({destinations:s},a?{originators:n}:{originator:n},a?{contents:r}:{content:r}),c=await this.Api(a?"ManyToMany":"OneToMany","POST",o);let h=0,d=0;return null==(i=c.references)||i.map(e=>{e?h++:d++}),e({},c,{references:c.references||[],count:{success:h,fail:d}})}async GetMessageStatus(e){return await this.Api("messageState","POST",{referenceids:e})}async GetReceivedMessages(){return await this.Api("pullReceivedMessages")}async GetReceivedMessagesCount(){return await this.Api("receivedMessageCount")}async GetUserInfo(){return await this.Api("userInfo")}}class t extends Error{constructor(e,s){let t,n;e&&Object.keys(i).includes(""+e)?(t=r(e),n=e):(t=s||"Unknown Vesal error",n=void 0),super(t),this.status=void 0,this.message=t,this.status=n}}function r(e){return 0===e?"success":Object.keys(i).includes(""+e)?i[e]:""}const n={0:"پیامک در صف ارسال قرار دارد",1:"ارسال شده",2:"پیامک به موبایل گیرنده تحویل شده است",3:"پیامک به موبایل گیرنده تحویل نشده است",4:"وضعیت نامشخص",5:"پیامک توسط وب سرویس به شرکت ارمغان راه طلایی رسیده است",6:"پیام از سمت اپراتور لغو شده است",7:"پیام از سمت اپراتور منقضی شده است",8:"پیام از سمت اپراتور reject شده است"},i={0:"عملیات با موفقیت انجام شد",[-100]:"refrenceId مورد نظر یافت نشد",[-101]:"احراز هویت کاربر موفقیت آمیز نبود",[-102]:"نام کاربری یافت نشد",[-103]:"شماره originator اشتباه یا در بازه شماره های کاربر نیست",[-104]:"اعتبار کم است",[-105]:"فرمت درخواست اشتباه است",[-106]:"تعداد refrenceId ها بیش از 1000 عدد است",[-107]:"شماره گیرنده پیامک اشتباه است",[-109]:"تاریخ انقضای حساب کاربری فرارسیده است",[-110]:"درخواست از ip مجاز کاربر ارسال نشده است",[-111]:"شماره گیرنده در بلک لیست قرار دارد",[-112]:"حساب مشتری فعال نیست",[-115]:"فرمت UDH اشتباه است",[-117]:"مقدار mclass وارد شده اشتباه است",[-118]:"شماره پورت وارد شده صحیح نیست",[-119]:"کاربر به سرویس مورد نظر دسترسی ندارد",[-120]:"پیام ارسال شده دارای هیچ شماره معتبری نیست",[-200]:"خطای داخلی در پایگاه داده رخ داده است",[-201]:"خطای نامشخص داخل پایگاه داده",[-137]:"پیام نباید حاوی کلمات غیرمجاز می باشد"};export{r as GetStatusText,s as Vesal,t as VesalError,s as default,n as messageStates,i as vesalErrors}; //# sourceMappingURL=vesal.modern.js.map