niazpardaz_sms 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,440 @@
1
+ # frozen_string_literal: true
2
+
3
+ module NiazpardazSms
4
+ module Models
5
+ # کدهای نتیجه ارسال پیامک
6
+ module SendResultCode
7
+ SEND_WAS_SUCCESSFUL = 0 # ارسال با موفقیت انجام شد
8
+ INVALID_USER_NAME_OR_PASSWORD = 1 # نام کاربر یا کلمه عبور نامعتبر می باشد
9
+ USER_BLOCKED = 2 # کاربر مسدود شده است
10
+ INVALID_SENDER_NUMBER = 3 # شماره فرستنده نامعتبر است
11
+ LIMITATION_IN_DAILY_SEND = 4 # محدودیت در ارسال روزانه
12
+ LIMITATION_IN_RECEIVER_COUNT = 5 # تعداد گیرندگان حداکثر 1000 شماره می باشد
13
+ SENDER_LINE_IS_INACTIVE = 6 # خط فرستنده غیرفعال است
14
+ SMS_CONTENT_FILTERED_WORDS_IS_INCLUDED = 7 # متن پیامک شامل کلمات فیلتر شده است
15
+ NO_CREDIT = 8 # اعتبار کافی نیست
16
+ SYSTEM_BEING_UPDATED = 9 # سامانه در حال بروز رسانی است
17
+ WEB_SERVICE_NOT_ACTIVE = 10 # وب سرویس غیرفعال است
18
+ NOT_IMPLEMENTED = 11 # پیاده سازی نشده است
19
+ LIKE_TO_LIKE_RECEIVER_AND_MESSAGE_COUNT_SHOULD_EQUAL = 12 # تعداد پیامها و شماره ها باید یکسان باشد
20
+ LIMITATION_IN_MESSAGE_CONTENT_COUNT = 13 # تعداد پیامها حداکثر 100 پیام می باشد
21
+ USER_TARIFF_NOT_DETERMINED = 14 # هیچ مقداری برای تعرفه جاری کاربر تعریف نشده است
22
+ DUPLICATE_SEND_SMS = 15 # ارسال تکراری متن مشابه به شماره مشابه
23
+ INVALID_NUMBER_EMPTY_OR_BLACKLIST = 16 # شماره موبایل گیرنده یافت نشد
24
+ TEXT_NOT_FOUND = 17 # متن وارد نشده است
25
+ NOT_VALID_TEMPLATE_FOUND = 18 # متن طبق الگوی تعریف شده نیست
26
+ USER_EXPIRED = 19 # کاربر منقضی شده است
27
+ USER_IS_NOT_ACTIVE = 20 # وضعیت کاربر فعال نیست
28
+ INVALID_PARAMETERS = 21 # مقدار یکی یا بیشتر از پارامترهای ورودی معتبر نیست
29
+ IP_BLOCKED = 22 # آی پی موقت بلاک شده است
30
+ ENQUEUE_FAILED = 23 # عملیات با خطا مواجه شد
31
+ DUPLICATE_REQUEST_THRESHOLD = 24 # درخواست کاملا تکراری در بازه کوتاه
32
+ INVALID_API_KEY = 25 # ApiKey نامعتبر
33
+ ERROR_CREATE_VOICE_FILE = 26 # خطا در ساخت فایل صوتی
34
+
35
+ DESCRIPTIONS = {
36
+ SEND_WAS_SUCCESSFUL => 'ارسال با موفقیت انجام شد',
37
+ INVALID_USER_NAME_OR_PASSWORD => 'نام کاربر یا کلمه عبور نامعتبر می باشد',
38
+ USER_BLOCKED => 'کاربر مسدود شده است',
39
+ INVALID_SENDER_NUMBER => 'شماره فرستنده نامعتبر است',
40
+ LIMITATION_IN_DAILY_SEND => 'محدودیت در ارسال روزانه',
41
+ LIMITATION_IN_RECEIVER_COUNT => 'تعداد گیرندگان حداکثر 1000 شماره می باشد',
42
+ SENDER_LINE_IS_INACTIVE => 'خط فرستنده غیرفعال است',
43
+ SMS_CONTENT_FILTERED_WORDS_IS_INCLUDED => 'متن پیامک شامل کلمات فیلتر شده است',
44
+ NO_CREDIT => 'اعتبار کافی نیست',
45
+ SYSTEM_BEING_UPDATED => 'سامانه در حال بروز رسانی است',
46
+ WEB_SERVICE_NOT_ACTIVE => 'وب سرویس غیرفعال است',
47
+ NOT_IMPLEMENTED => 'پیاده سازی نشده است',
48
+ LIKE_TO_LIKE_RECEIVER_AND_MESSAGE_COUNT_SHOULD_EQUAL => 'تعداد پیامها و شماره ها باید یکسان باشد',
49
+ LIMITATION_IN_MESSAGE_CONTENT_COUNT => 'تعداد پیامها حداکثر 100 پیام می باشد',
50
+ USER_TARIFF_NOT_DETERMINED => 'هیچ مقداری برای تعرفه جاری کاربر تعریف نشده است',
51
+ DUPLICATE_SEND_SMS => 'ارسال تکراری متن مشابه به شماره مشابه',
52
+ INVALID_NUMBER_EMPTY_OR_BLACKLIST => 'شماره موبایل گیرنده یافت نشد',
53
+ TEXT_NOT_FOUND => 'متن وارد نشده است',
54
+ NOT_VALID_TEMPLATE_FOUND => 'متن طبق الگوی تعریف شده نیست',
55
+ USER_EXPIRED => 'کاربر منقضی شده است',
56
+ USER_IS_NOT_ACTIVE => 'وضعیت کاربر فعال نیست',
57
+ INVALID_PARAMETERS => 'مقدار یکی یا بیشتر از پارامترهای ورودی معتبر نیست',
58
+ IP_BLOCKED => 'آی پی موقت بلاک شده است',
59
+ ENQUEUE_FAILED => 'عملیات با خطا مواجه شد',
60
+ DUPLICATE_REQUEST_THRESHOLD => 'درخواست کاملا تکراری در بازه کوتاه',
61
+ INVALID_API_KEY => 'ApiKey نامعتبر',
62
+ ERROR_CREATE_VOICE_FILE => 'خطا در ساخت فایل صوتی'
63
+ }.freeze
64
+
65
+ def self.description(code)
66
+ DESCRIPTIONS[code] || 'کد نامشخص'
67
+ end
68
+
69
+ def self.success?(code)
70
+ code == SEND_WAS_SUCCESSFUL
71
+ end
72
+ end
73
+
74
+ # کدهای نتیجه گزارش تحویل
75
+ module DeliveryResultCode
76
+ SUCCESS = 0 # موفق
77
+ SERVICE_CONNECTION_ERROR = -1 # خطا در ارتباط با سرویس دهنده
78
+ INVALID_BATCH_SMS_ID = -2 # پیام با این کد وجود ندارد
79
+ REPORT_EXPIRED = -3 # مهلت یک هفته ای گرفتن گزارش پایان یافته است
80
+ MESSAGE_IN_QUEUE = -4 # پیام در صف ارسال مخابرات است
81
+ TOO_EARLY = -5 # حداقل یک دقیقه بعد از ارسال اقدام نمایید
82
+ IP_BLOCKED = -6 # آی پی موقتا بلاک شده است
83
+ INVALID_API_KEY = -7 # ApiKey نامعتبر
84
+
85
+ DESCRIPTIONS = {
86
+ SUCCESS => 'موفق',
87
+ SERVICE_CONNECTION_ERROR => 'خطا در ارتباط با سرویس دهنده',
88
+ INVALID_BATCH_SMS_ID => 'پیام با این کد وجود ندارد',
89
+ REPORT_EXPIRED => 'مهلت یک هفته ای گرفتن گزارش پایان یافته است',
90
+ MESSAGE_IN_QUEUE => 'پیام در صف ارسال مخابرات است',
91
+ TOO_EARLY => 'حداقل یک دقیقه بعد از ارسال اقدام نمایید',
92
+ IP_BLOCKED => 'آی پی موقتا بلاک شده است',
93
+ INVALID_API_KEY => 'ApiKey نامعتبر'
94
+ }.freeze
95
+
96
+ def self.description(code)
97
+ DESCRIPTIONS[code] || 'کد نامشخص'
98
+ end
99
+
100
+ def self.success?(code)
101
+ code == SUCCESS
102
+ end
103
+ end
104
+
105
+ # وضعیت تحویل پیامک
106
+ module SmsDeliveryStatus
107
+ NONE = -10 # نامشخص
108
+ SENT_TO_TELECOM = 0 # ارسال شده به مخابرات
109
+ DELIVERED = 1 # رسیده به گوشی
110
+ NOT_DELIVERED = 2 # نرسیده به گوشی
111
+ SMS_FAILED = 3 # خطای مخابراتی
112
+ UNKNOWN_ERROR = 4 # خطای نامشخص
113
+ RECEIVED_BY_TELECOM = 5 # رسیده به مخابرات
114
+ NOT_RECEIVED_BY_TELECOM = 6 # نرسیده به مخابرات
115
+ BLACKLISTED = 7 # مسدود شده توسط مقصد
116
+ UNKNOWN = 8 # نامشخص
117
+ REJECTED_BY_TELECOM = 9 # مخابرات پیام را مردود اعلام کرد
118
+ CANCELED = 10 # کنسل شده توسط اپراتور
119
+ NOT_SENT = 11 # ارسال نشده
120
+ NO_TELEGRAM = 12 # تلگرام ندارد
121
+ IN_QUEUE = 13 # در صف ارسال
122
+
123
+ DESCRIPTIONS = {
124
+ NONE => 'نامشخص',
125
+ SENT_TO_TELECOM => 'ارسال شده به مخابرات',
126
+ DELIVERED => 'رسیده به گوشی',
127
+ NOT_DELIVERED => 'نرسیده به گوشی',
128
+ SMS_FAILED => 'خطای مخابراتی',
129
+ UNKNOWN_ERROR => 'خطای نامشخص',
130
+ RECEIVED_BY_TELECOM => 'رسیده به مخابرات',
131
+ NOT_RECEIVED_BY_TELECOM => 'نرسیده به مخابرات',
132
+ BLACKLISTED => 'مسدود شده توسط مقصد',
133
+ UNKNOWN => 'نامشخص',
134
+ REJECTED_BY_TELECOM => 'مخابرات پیام را مردود اعلام کرد',
135
+ CANCELED => 'کنسل شده توسط اپراتور',
136
+ NOT_SENT => 'ارسال نشده',
137
+ NO_TELEGRAM => 'تلگرام ندارد',
138
+ IN_QUEUE => 'در صف ارسال'
139
+ }.freeze
140
+
141
+ def self.description(code)
142
+ DESCRIPTIONS[code] || 'کد نامشخص'
143
+ end
144
+
145
+ def self.delivered?(code)
146
+ code == DELIVERED
147
+ end
148
+ end
149
+
150
+ # کدهای نتیجه اعتبار
151
+ module CreditResultCode
152
+ SUCCESS = 0 # موفق
153
+ INVALID_CREDENTIALS = -1 # نام کاربری و رمز عبور صحیح نمی باشد
154
+ USER_DISABLED = -2 # کاربر غیرفعال می باشد
155
+ IP_BLOCKED = -6 # آی پی موقتا بلاک شده است
156
+ INVALID_API_KEY = -7 # ApiKey نامعتبر
157
+
158
+ DESCRIPTIONS = {
159
+ SUCCESS => 'موفق',
160
+ INVALID_CREDENTIALS => 'نام کاربری و رمز عبور صحیح نمی باشد',
161
+ USER_DISABLED => 'کاربر غیرفعال می باشد',
162
+ IP_BLOCKED => 'آی پی موقتا بلاک شده است',
163
+ INVALID_API_KEY => 'ApiKey نامعتبر'
164
+ }.freeze
165
+
166
+ def self.description(code)
167
+ DESCRIPTIONS[code] || 'کد نامشخص'
168
+ end
169
+
170
+ def self.success?(code)
171
+ code == SUCCESS
172
+ end
173
+ end
174
+
175
+ # کدهای نتیجه لیست سیاه
176
+ module BlacklistResultCode
177
+ SUCCESS = 0 # عملیات با موفقیت انجام شد
178
+ INVALID_CREDENTIALS = -1 # نام کاربری و رمز عبور صحیح نمی باشد
179
+ USER_DISABLED = -2 # کاربر غیرفعال می باشد
180
+ EMPTY_NUMBERS_ARRAY = -3 # آرایه شماره های همراه خالی می باشد
181
+ MAX_NUMBERS_EXCEEDED = -4 # تعداد شماره ها حداکثر 1000 شماره می باشد
182
+ IP_BLOCKED = -6 # آی پی موقتا بلاک شده است
183
+ INVALID_API_KEY = -7 # ApiKey نامعتبر
184
+
185
+ DESCRIPTIONS = {
186
+ SUCCESS => 'عملیات با موفقیت انجام شد',
187
+ INVALID_CREDENTIALS => 'نام کاربری و رمز عبور صحیح نمی باشد',
188
+ USER_DISABLED => 'کاربر غیرفعال می باشد',
189
+ EMPTY_NUMBERS_ARRAY => 'آرایه شماره های همراه خالی می باشد',
190
+ MAX_NUMBERS_EXCEEDED => 'تعداد شماره ها حداکثر 1000 شماره می باشد',
191
+ IP_BLOCKED => 'آی پی موقتا بلاک شده است',
192
+ INVALID_API_KEY => 'ApiKey نامعتبر'
193
+ }.freeze
194
+
195
+ def self.description(code)
196
+ DESCRIPTIONS[code] || 'کد نامشخص'
197
+ end
198
+
199
+ def self.success?(code)
200
+ code == SUCCESS
201
+ end
202
+ end
203
+
204
+ # کدهای نتیجه شماره های ارسال کننده
205
+ module SenderNumbersResultCode
206
+ SUCCESS = 0 # موفق
207
+ INVALID_CREDENTIALS = -1 # نام کاربری و رمز عبور صحیح نمی باشد
208
+ USER_DISABLED = -2 # کاربر غیرفعال می باشد
209
+ IP_BLOCKED = -6 # آی پی موقتا بلاک شده است
210
+ INVALID_API_KEY = -7 # ApiKey نامعتبر
211
+
212
+ DESCRIPTIONS = {
213
+ SUCCESS => 'موفق',
214
+ INVALID_CREDENTIALS => 'نام کاربری و رمز عبور صحیح نمی باشد',
215
+ USER_DISABLED => 'کاربر غیرفعال می باشد',
216
+ IP_BLOCKED => 'آی پی موقتا بلاک شده است',
217
+ INVALID_API_KEY => 'ApiKey نامعتبر'
218
+ }.freeze
219
+
220
+ def self.description(code)
221
+ DESCRIPTIONS[code] || 'کد نامشخص'
222
+ end
223
+
224
+ def self.success?(code)
225
+ code == SUCCESS
226
+ end
227
+ end
228
+
229
+ # کدهای نتیجه تعداد پیامک های دریافتی
230
+ module InboxCountResultCode
231
+ SUCCESS = 0 # موفق
232
+ INVALID_CREDENTIALS = -1 # نام کاربری و رمز عبور صحیح نمی باشد
233
+ USER_DISABLED = -2 # کاربر غیرفعال می باشد
234
+ IP_BLOCKED = -6 # آی پی موقتا بلاک شده است
235
+ INVALID_API_KEY = -7 # ApiKey نامعتبر
236
+
237
+ DESCRIPTIONS = {
238
+ SUCCESS => 'موفق',
239
+ INVALID_CREDENTIALS => 'نام کاربری و رمز عبور صحیح نمی باشد',
240
+ USER_DISABLED => 'کاربر غیرفعال می باشد',
241
+ IP_BLOCKED => 'آی پی موقتا بلاک شده است',
242
+ INVALID_API_KEY => 'ApiKey نامعتبر'
243
+ }.freeze
244
+
245
+ def self.description(code)
246
+ DESCRIPTIONS[code] || 'کد نامشخص'
247
+ end
248
+
249
+ def self.success?(code)
250
+ code == SUCCESS
251
+ end
252
+ end
253
+
254
+ # کدهای نتیجه بررسی محتوای پیامک
255
+ module CheckContentResultCode
256
+ SUCCESS = 0 # موفق
257
+ INVALID_CREDENTIALS = -1 # نام کاربری و رمز عبور صحیح نمی باشد
258
+ USER_DISABLED = -2 # کاربر غیرفعال می باشد
259
+ IP_BLOCKED = -6 # آی پی موقتا بلاک شده است
260
+ INVALID_API_KEY = -7 # ApiKey نامعتبر
261
+
262
+ DESCRIPTIONS = {
263
+ SUCCESS => 'موفق',
264
+ INVALID_CREDENTIALS => 'نام کاربری و رمز عبور صحیح نمی باشد',
265
+ USER_DISABLED => 'کاربر غیرفعال می باشد',
266
+ IP_BLOCKED => 'آی پی موقتا بلاک شده است',
267
+ INVALID_API_KEY => 'ApiKey نامعتبر'
268
+ }.freeze
269
+
270
+ def self.description(code)
271
+ DESCRIPTIONS[code] || 'کد نامشخص'
272
+ end
273
+
274
+ def self.success?(code)
275
+ code == SUCCESS
276
+ end
277
+ end
278
+
279
+ # زبان پیامک
280
+ module SmsLangType
281
+ NONE = -10 # نامشخص
282
+ FA = 1 # فارسی
283
+ EN = 2 # انگلیسی
284
+
285
+ DESCRIPTIONS = {
286
+ NONE => 'نامشخص',
287
+ FA => 'فارسی',
288
+ EN => 'انگلیسی'
289
+ }.freeze
290
+
291
+ def self.description(code)
292
+ DESCRIPTIONS[code] || 'کد نامشخص'
293
+ end
294
+ end
295
+
296
+ # وضعیت پیامک
297
+ module SmsStatusType
298
+ NONE = -10 # نامشخص
299
+ PENDING = 1 # منتظر تایید
300
+ ILLEGAL = 2 # غیر مجاز
301
+ SENDING = 3 # در حال ارسال
302
+ NOT_APPROVED = 4 # تایید نشده
303
+ SENT = 5 # ارسال شده
304
+ CANCELED = 6 # انصراف
305
+ ERROR = 7 # توقف ارسال
306
+ NO_CREDIT = 8 # مبلغ شارژ جهت ارسال کافی نیست
307
+ NOT_SENT = 9 # ارسال نشده
308
+ WAIT_FOR_SEND = 10 # منتظر ارسال
309
+ PENDING_DEC_COST = 11 # در حال کسر هزینه
310
+ IN_QUEUE = 12 # در صف منتظر ارسال
311
+ MANY_TO_MANY_CALC_COST = 13 # در حال کسر هزینه چند به چند
312
+
313
+ DESCRIPTIONS = {
314
+ NONE => 'نامشخص',
315
+ PENDING => 'منتظر تایید',
316
+ ILLEGAL => 'غیر مجاز',
317
+ SENDING => 'در حال ارسال',
318
+ NOT_APPROVED => 'تایید نشده',
319
+ SENT => 'ارسال شده',
320
+ CANCELED => 'انصراف',
321
+ ERROR => 'توقف ارسال',
322
+ NO_CREDIT => 'مبلغ شارژ جهت ارسال کافی نیست',
323
+ NOT_SENT => 'ارسال نشده',
324
+ WAIT_FOR_SEND => 'منتظر ارسال',
325
+ PENDING_DEC_COST => 'در حال کسر هزینه',
326
+ IN_QUEUE => 'در صف منتظر ارسال',
327
+ MANY_TO_MANY_CALC_COST => 'در حال کسر هزینه چند به چند'
328
+ }.freeze
329
+
330
+ def self.description(code)
331
+ DESCRIPTIONS[code] || 'کد نامشخص'
332
+ end
333
+ end
334
+
335
+ # وضعیت ارسال پیامک
336
+ module SmsSendStatusType
337
+ NONE = -10 # نامشخص
338
+ SENT = 1 # ارسال شده
339
+ ERROR = 2 # خطای مخابراتی
340
+ BLOCK_LIST = 3 # خط مقصد دریافت از خطوط پیامک را مسدود کرده است
341
+
342
+ DESCRIPTIONS = {
343
+ NONE => 'نامشخص',
344
+ SENT => 'ارسال شده',
345
+ ERROR => 'خطای مخابراتی',
346
+ BLOCK_LIST => 'خط مقصد دریافت از خطوط پیامک را مسدود کرده است'
347
+ }.freeze
348
+
349
+ def self.description(code)
350
+ DESCRIPTIONS[code] || 'کد نامشخص'
351
+ end
352
+ end
353
+
354
+ # روش ارسال
355
+ module SmsSendMethodType
356
+ NONE = -10 # نامشخص
357
+ QUICK = 1 # سریع
358
+ TEST = 2 # تست
359
+ REGIONAL = 3 # منطقه ای
360
+ GROUP = 4 # گروهی
361
+ WEB_SERVICE = 5 # وب سرویس
362
+ ANNOUNCEMENT = 6 # اطلاع رسانی
363
+ SECRETARY = 7 # منشی
364
+ INTELLIGENT_SEND = 8 # ارسال هوشمند
365
+ CORRESPONDING_SEND = 9 # ارسال متناظر
366
+ CODE_READER = 10 # کد خوان
367
+ POLL = 11 # نظرسنجی
368
+ TRANSFER = 12 # انتقال پیامک
369
+ REPLY = 13 # پاسخ
370
+ PHONE_BOOK = 14 # ارسال از دفتر تلفن
371
+ POSTAL_CODE = 15 # ارسال کد پستی
372
+ SMS_EVENT = 16 # پیامک مناسبت
373
+ INTELLIGENT_SECRETARY = 17 # منشی هوشمند
374
+ ADD_TO_PHONE_BOOK = 18 # اضافه به لیست
375
+ INSTANT_SMS = 19 # پیامک فوری
376
+ SCHEDULE_SMS = 20 # پیامک زماندار
377
+ USANCE_SMS = 21 # پیامک سررسید
378
+ AGE_AND_GENDER = 22 # سن و جنسیت
379
+ SYSTEM = 23 # سیستمی
380
+ BIRTHDAY_SMS = 24 # ارسال تولد
381
+ KIOSK_SMS = 25 # کیوسک
382
+ CANCELLATION_BY_11 = 26 # لغو11
383
+
384
+ DESCRIPTIONS = {
385
+ NONE => 'نامشخص',
386
+ QUICK => 'سریع',
387
+ TEST => 'تست',
388
+ REGIONAL => 'منطقه ای',
389
+ GROUP => 'گروهی',
390
+ WEB_SERVICE => 'وب سرویس',
391
+ ANNOUNCEMENT => 'اطلاع رسانی',
392
+ SECRETARY => 'منشی',
393
+ INTELLIGENT_SEND => 'ارسال هوشمند',
394
+ CORRESPONDING_SEND => 'ارسال متناظر',
395
+ CODE_READER => 'کد خوان',
396
+ POLL => 'نظرسنجی',
397
+ TRANSFER => 'انتقال پیامک',
398
+ REPLY => 'پاسخ',
399
+ PHONE_BOOK => 'ارسال از دفتر تلفن',
400
+ POSTAL_CODE => 'ارسال کد پستی',
401
+ SMS_EVENT => 'پیامک مناسبت',
402
+ INTELLIGENT_SECRETARY => 'منشی هوشمند',
403
+ ADD_TO_PHONE_BOOK => 'اضافه به لیست',
404
+ INSTANT_SMS => 'پیامک فوری',
405
+ SCHEDULE_SMS => 'پیامک زماندار',
406
+ USANCE_SMS => 'پیامک سررسید',
407
+ AGE_AND_GENDER => 'سن و جنسیت',
408
+ SYSTEM => 'سیستمی',
409
+ BIRTHDAY_SMS => 'ارسال تولد',
410
+ KIOSK_SMS => 'کیوسک',
411
+ CANCELLATION_BY_11 => 'لغو11'
412
+ }.freeze
413
+
414
+ def self.description(code)
415
+ DESCRIPTIONS[code] || 'کد نامشخص'
416
+ end
417
+ end
418
+
419
+ # نوع مسیر پیامک
420
+ module SmsDirectionType
421
+ NONE = -10 # نامشخص
422
+ IN = 1 # دریافتی
423
+ OUT = 2 # ارسالی
424
+ SCHEDULE = 3 # زماندار
425
+ USANCE = 4 # سررسید
426
+
427
+ DESCRIPTIONS = {
428
+ NONE => 'نامشخص',
429
+ IN => 'دریافتی',
430
+ OUT => 'ارسالی',
431
+ SCHEDULE => 'زماندار',
432
+ USANCE => 'سررسید'
433
+ }.freeze
434
+
435
+ def self.description(code)
436
+ DESCRIPTIONS[code] || 'کد نامشخص'
437
+ end
438
+ end
439
+ end
440
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails/railtie'
4
+
5
+ module NiazpardazSms
6
+ # Railtie برای یکپارچگی با Rails
7
+ #
8
+ # این کلاس به صورت خودکار توسط Rails بارگذاری می‌شود و امکانات زیر را فراهم می‌کند:
9
+ # - بارگذاری خودکار generators
10
+ # - پیکربندی از طریق Rails credentials
11
+ #
12
+ class Railtie < Rails::Railtie
13
+ # بارگذاری generators
14
+ generators do
15
+ require_relative '../generators/niazpardaz_sms/install/install_generator'
16
+ end
17
+
18
+ # پیکربندی اولیه
19
+ initializer 'niazpardaz_sms.configure' do |app|
20
+ # اگر credentials تنظیم شده باشد، از آن استفاده کن
21
+ if app.credentials.respond_to?(:niazpardaz_sms)
22
+ credentials = app.credentials.niazpardaz_sms
23
+ NiazpardazSms.default_api_key ||= credentials[:api_key] if credentials[:api_key]
24
+ NiazpardazSms.default_timeout ||= credentials[:timeout] if credentials[:timeout]
25
+ NiazpardazSms.default_base_url ||= credentials[:base_url] if credentials[:base_url]
26
+ end
27
+ end
28
+
29
+ # Rake tasks (در صورت نیاز)
30
+ rake_tasks do
31
+ # می‌توانید rake tasks اضافه کنید
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module NiazpardazSms
4
+ VERSION = '1.0.2'
5
+ end
@@ -0,0 +1,67 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'niazpardaz_sms/version'
4
+ require_relative 'niazpardaz_sms/errors/niazpardaz_api_error'
5
+ require_relative 'niazpardaz_sms/models/result_codes'
6
+ require_relative 'niazpardaz_sms/models/responses'
7
+ require_relative 'niazpardaz_sms/client'
8
+
9
+ # بارگذاری Railtie در صورت وجود Rails
10
+ require_relative 'niazpardaz_sms/railtie' if defined?(Rails::Railtie)
11
+
12
+ # کتابخانه رسمی Ruby برای کار با API پیامکی نیازپرداز
13
+ #
14
+ # @example استفاده ساده
15
+ # client = NiazpardazSms::Client.new('YOUR_API_KEY')
16
+ # result = client.send_sms(
17
+ # from_number: '10001234',
18
+ # to_number: '09123456789',
19
+ # message: 'سلام از نیازپرداز!'
20
+ # )
21
+ #
22
+ # @example با تنظیمات سفارشی
23
+ # client = NiazpardazSms::Client.new('YOUR_API_KEY', timeout: 60)
24
+ #
25
+ module NiazpardazSms
26
+ class << self
27
+ # تنظیمات پیش‌فرض
28
+ attr_accessor :default_api_key, :default_timeout, :default_base_url
29
+
30
+ # ایجاد کلاینت با تنظیمات پیش‌فرض
31
+ #
32
+ # @param api_key [String, nil] کلید API (اختیاری اگر default_api_key تنظیم شده باشد)
33
+ # @param options [Hash] تنظیمات اختیاری
34
+ # @return [Client] کلاینت جدید
35
+ def client(api_key = nil, options = {})
36
+ key = api_key || default_api_key
37
+ opts = {
38
+ timeout: default_timeout,
39
+ base_url: default_base_url
40
+ }.compact.merge(options)
41
+
42
+ Client.new(key, opts)
43
+ end
44
+
45
+ # پیکربندی کتابخانه
46
+ #
47
+ # @yield [self] بلوک پیکربندی
48
+ # @example
49
+ # NiazpardazSms.configure do |config|
50
+ # config.default_api_key = 'YOUR_API_KEY'
51
+ # config.default_timeout = 60
52
+ # end
53
+ def configure
54
+ yield self
55
+ end
56
+
57
+ # ریست کردن تنظیمات
58
+ def reset_configuration!
59
+ @default_api_key = nil
60
+ @default_timeout = nil
61
+ @default_base_url = nil
62
+ end
63
+ end
64
+ end
65
+
66
+ # Alias برای دسترسی آسان‌تر
67
+ Niazpardaz = NiazpardazSms unless defined?(Niazpardaz)
metadata ADDED
@@ -0,0 +1,96 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: niazpardaz_sms
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Niazpardaz
8
+ bindir: exe
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: faraday
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '1.0'
19
+ - - "<"
20
+ - !ruby/object:Gem::Version
21
+ version: '3.0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ version: '1.0'
29
+ - - "<"
30
+ - !ruby/object:Gem::Version
31
+ version: '3.0'
32
+ - !ruby/object:Gem::Dependency
33
+ name: faraday-net_http
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: '1.0'
39
+ type: :runtime
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: '1.0'
46
+ description: کتابخانه رسمی Ruby برای ارسال پیامک، دریافت گزارش تحویل، مدیریت لیست
47
+ سیاه و سایر امکانات API پیامکی نیازپرداز. سازگار با Rails، Sinatra و سایر فریم‌ورک‌های
48
+ Ruby. برای خرید پنل می توانید به سایت https://niazpardaz-sms.com مراجعه نمایید.
49
+ executables: []
50
+ extensions: []
51
+ extra_rdoc_files: []
52
+ files:
53
+ - ".rspec"
54
+ - ".rubocop.yml"
55
+ - CHANGELOG.md
56
+ - Gemfile
57
+ - LICENSE
58
+ - README.md
59
+ - Rakefile
60
+ - lib/generators/niazpardaz_sms/install/install_generator.rb
61
+ - lib/generators/niazpardaz_sms/install/templates/README
62
+ - lib/generators/niazpardaz_sms/install/templates/niazpardaz_sms.rb
63
+ - lib/niazpardaz_sms.rb
64
+ - lib/niazpardaz_sms/client.rb
65
+ - lib/niazpardaz_sms/errors/niazpardaz_api_error.rb
66
+ - lib/niazpardaz_sms/models/responses.rb
67
+ - lib/niazpardaz_sms/models/result_codes.rb
68
+ - lib/niazpardaz_sms/railtie.rb
69
+ - lib/niazpardaz_sms/version.rb
70
+ homepage: https://github.com/NiazpardazSms/niazpardaz-sms-ruby
71
+ licenses:
72
+ - MIT
73
+ metadata:
74
+ homepage_uri: https://github.com/NiazpardazSms/niazpardaz-sms-ruby
75
+ source_code_uri: https://github.com/NiazpardazSms/niazpardaz-sms-ruby
76
+ changelog_uri: https://github.com/NiazpardazSms/niazpardaz-sms-ruby/blob/main/CHANGELOG.md
77
+ documentation_uri: https://niazpardaz-sms.com/webservice
78
+ rubygems_mfa_required: 'true'
79
+ rdoc_options: []
80
+ require_paths:
81
+ - lib
82
+ required_ruby_version: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ version: 2.6.0
87
+ required_rubygems_version: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - ">="
90
+ - !ruby/object:Gem::Version
91
+ version: '0'
92
+ requirements: []
93
+ rubygems_version: 4.0.3
94
+ specification_version: 4
95
+ summary: کتابخانه رسمی Ruby برای کار با API پیامکی نیازپرداز
96
+ test_files: []