| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- class CouchDBService
- constructor: ->
- @baseUrl = 'http://localhost:5984'
- @dbName = 'kohi_borbad_events'
- @headers =
- 'Content-Type': 'application/json'
- 'Authorization': 'Basic ' + btoa('admin:password')
- @testData = [ {
- _id: 'event_classical_001'
- title: 'Концерт симфонического оркестра'
- date: '2025-10-15'
- time: '19:00'
- description: 'Произведения Чайковского и Рахманинова в исполнении Национального симфонического оркестра'
- image: '/images/event-classical.jpg'
- category: 'classical'
- price: 50
- venue: 'Большой зал'
- duration: '2 часа 30 минут'
- ageRestriction: '12+'
- availableTickets: 45
- isFeatured: true
- inSlider: true
- shortDescription: 'Шедевры классической музыки'
- cta: 'Купить билеты'
- }
- {
- _id: 'event_folk_001'
- title: 'Вечер таджикской народной музыки'
- date: '2025-10-20'
- time: '18:30'
- description: 'Выступление фольклорного ансамбля "Шашмаком" с программой традиционных мелодий и танцев'
- image: '/images/event-folk.jpg'
- category: 'folk'
- price: 30
- venue: 'Малый зал'
- duration: '2 часа'
- ageRestriction: '6+'
- availableTickets: 28
- isFeatured: true
- inSlider: true
- shortDescription: 'Традиционные мелодии и танцы Таджикистана'
- cta: 'Узнать больше'
- }
- {
- _id: 'event_jazz_001'
- title: 'Джазовый фестиваль "Borbad Jazz"'
- date: '2025-10-25'
- time: '20:00'
- description: 'Международные джазовые коллективы из Европы и Азии в уникальной акустике зала'
- image: '/images/event-jazz.jpg'
- category: 'jazz'
- price: 70
- venue: 'Большой зал'
- duration: '3 часа'
- ageRestriction: '16+'
- availableTickets: 15
- isFeatured: true
- inSlider: true
- shortDescription: 'Международные джазовые коллективы'
- cta: 'Смотреть расписание'
- }
- {
- _id: 'event_pop_001'
- title: 'Концерт популярной музыки'
- date: '2025-10-28'
- time: '19:30'
- description: 'Лучшие поп-исполнители Таджикистана представят новые хиты и классические композиции'
- image: '/images/event-pop.jpg'
- category: 'pop'
- price: 45
- venue: 'Большой зал'
- duration: '2 часа 15 минут'
- ageRestriction: '12+'
- availableTickets: 67
- isFeatured: true
- inSlider: false
- shortDescription: 'Лучшие поп-исполнители страны'
- cta: 'Купить билеты'
- }
- {
- _id: 'event_opera_001'
- title: 'Оперный гала-концерт'
- date: '2025-11-02'
- time: '18:00'
- description: 'Известные оперные певцы исполнят арии из мировых шедевров оперного искусства'
- image: '/images/event-opera.jpg'
- category: 'classical'
- price: 80
- venue: 'Большой зал'
- duration: '2 часа 45 минут'
- ageRestriction: '12+'
- availableTickets: 23
- isFeatured: true
- inSlider: false
- shortDescription: 'Арии из мировых оперных шедевров'
- cta: 'Забронировать места'
- }
- {
- _id: 'event_dance_001'
- title: 'Танцевальное шоу "Восточные ритмы"'
- date: '2025-11-05'
- time: '19:00'
- description: 'Традиционные и современные танцевальные коллективы представят красочное шоу'
- image: '/images/event-dance.jpg'
- category: 'dance'
- price: 35
- venue: 'Большой зал'
- duration: '2 часа 30 минут'
- ageRestriction: '6+'
- availableTickets: 89
- isFeatured: true
- inSlider: true
- shortDescription: 'Традиционные и современные танцы'
- cta: 'Посмотреть программу'
- }
- ]
- getAllEvents: ->
- new Promise (resolve, reject) =>
- try
- response = await fetch("#{@baseUrl}/#{@dbName}/_all_docs?include_docs=true", {
- method: 'GET'
- headers: @headers
- })
-
- if response.ok
- data = await response.json()
- events = data.rows.map (row) -> row.doc
- resolve(events.filter (event) -> !event._id.startsWith('_design/'))
- else
- debug.log "Ошибка получения мероприятий: "+response.statusText
- resolve(@testData)
- catch error
- debug.log "Ошибка подключения к CouchDB: "+error
- resolve(@testData)
- getEventById: (id) ->
- new Promise (resolve, reject) =>
- try
- response = await fetch("#{@baseUrl}/#{@dbName}/#{id}", {
- method: 'GET'
- headers: @headers
- })
-
- if response.ok
- event = await response.json()
- resolve(event)
- else
- debug.log "Ошибка получения мероприятия: "+response.statusText
- resolve(@testData.filter (a)->
- (a.id == id)?true:false
- )
- catch error
- debug.log "Ошибка подключения к CouchDB: "+error
- resolve(@testData.filter (a)->
- (a.id == id)?true:false
- )
- module.exports = CouchDBService
|