angrybeanie-front-end/data/external/cms.js

508 lines
No EOL
13 KiB
JavaScript
Executable file

import getConfig from 'next/config'
export const getAllPosts = async (filter, page, limit) => {
const { serverRuntimeConfig, publicRuntimeConfig } = getConfig()
const qs = require('qs')
const qVal = []
if (page == null) {
page = 0
}
if (limit == null) {
limit = 50;
}
var filters = {}
if (filter) {
filters = {
project: {
Slug: {
$in: filter
}
}
}
}
const qArray = {
sort: ['publishedAt:desc'],
pagination: {
page: page,
pageSize: limit
},
populate: '*',
filters
}
const query = qs.stringify( qArray, {
encodeValuesOnly: true,
})
const res = await fetch(serverRuntimeConfig.base_path + `articles?${query}`, {
headers: new Headers({
'Authorization': serverRuntimeConfig.strapi_token,
'Content-Type': 'application/x-www-form-urlencoded'
})
})
return await res.json()
}
export const getSinglePost = async (postId) => {
const { serverRuntimeConfig} = getConfig()
const url = serverRuntimeConfig.base_path + 'articles?filters[Slug][$eq]=' + postId + '&populate=*'
const res = await fetch(url, {
headers: new Headers({
'Authorization': serverRuntimeConfig.strapi_token,
'Content-Type': 'application/x-www-form-urlencoded'
})
})
const artdata = await res.json()
return artdata.data[0].attributes
}
export const getAllPodcastSeries = async () => {
const { serverRuntimeConfig } = getConfig()
const qs = require('qs')
const query = qs.stringify({
populate: {
Logo: '*',
podcast_episodes: {
populate:['Audio_MP3', 'Subtitles']
}
}
}, {
encodeValuesOnly: true,
})
const res = await fetch(serverRuntimeConfig.base_path + `podcast-series?${query}`, {
headers: new Headers({
'Authorization': serverRuntimeConfig.strapi_token,
'Content-Type': 'application/x-www-form-urlencoded'
})
})
return await res.json()
}
export const getAllPodcastEpisodes = async () => {
const { serverRuntimeConfig } = getConfig()
const qs = require('qs')
const query = qs.stringify({
populate: {}
}, {
encodeValuesOnly: true
})
const res = await fetch(serverRuntimeConfig.base_path + `podcast-episodes?${query}`, {
headers: new Headers({
'Authorization': serverRuntimeConfig.strapi_token,
'Content-Type': 'application/x-www-form-urlencoded'
})
})
return await res.json()
}
export const getProjectDetails = async (projectId) => {
const { serverRuntimeConfig } = getConfig()
const qs = require('qs')
const query = qs.stringify({
filters: {
Slug: {
$eq: projectId
}
},
populate: '*'
}, {
encodeValuesOnly: true,
})
const res = await fetch(serverRuntimeConfig.base_path + `projects?${query}`, {
headers: new Headers({
'Authorization': serverRuntimeConfig.strapi_token,
'Content-Type': 'application/x-www-form-urlencoded'
})
})
return await res.json()
}
export const getPodcastEpisode = async (episodeId) => {
const { serverRuntimeConfig} = getConfig()
const qs = require('qs')
const query = qs.stringify({
filters: {
Slug: {
$eq: episodeId
}
},
populate: '*'
}, {
encodeValuesOnly: true,
})
const epres = await fetch(serverRuntimeConfig.base_path + `podcast-episodes?${query}`, {
headers: new Headers({
'Authorization':serverRuntimeConfig.strapi_token,
'Content-Type': 'application/x-www-form-urlencoded'
})
})
return await epres.json()
}
export const getPodcastSeries = async (podcastId) => {
const { serverRuntimeConfig} = getConfig()
const qs = require('qs')
const query = qs.stringify({
filters: {
Slug: {
$eq: podcastId
}
},
populate: '*'
}, {
encodeValuesOnly: true,
})
const url = serverRuntimeConfig.base_path + `podcast-series?${query}`;
const showres = await fetch(url, {
headers: new Headers({
'Authorization': serverRuntimeConfig.strapi_token,
'Content-Type': 'application/x-www-form-urlencoded'
})
})
return await showres.json()
}
export const getPodcastSeriesEpisodes = async (podcastId, limit, page) => {
const { serverRuntimeConfig} = getConfig()
const qs = require('qs')
const query = qs.stringify({
filters: {
podcast_sery: {
Slug: {
$eq: podcastId
}
}
},
pagination: {
page: page,
pageSize: limit
},
sort: ['publishedAt:desc'],
populate: '*'
}, {
encodeValuesOnly: true,
})
const epres = await fetch(serverRuntimeConfig.base_path + `podcast-episodes?${query}`, {
headers: new Headers({
'Authorization': serverRuntimeConfig.strapi_token,
'Content-Type': 'application/x-www-form-urlencoded'
})
})
return await epres.json();
}
export const getLatestPodcastEpisode = async () => {
const { serverRuntimeConfig} = getConfig()
const qs = require('qs')
var query = qs.stringify({
sort: ['publishedAt:desc'],
pagination: {
page: 1,
pageSize: 1,
},
populate: '*'
})
const epres = await fetch(serverRuntimeConfig.base_path + `podcast-episodes?${query}`, {
headers: new Headers({
'Authorization': serverRuntimeConfig.strapi_token,
'Content-Type': 'application/x-www-form-urlencoded'
})
})
const episode = await epres.json()
const seriesres = await getPodcastSeries(episode.data[0].attributes.podcast_sery.data.attributes.Slug)
const res = {
...episode,
...seriesres.data[0].attributes
}
return res
}
export const getAllGalleries = async(page, limit) => {
const { serverRuntimeConfig, publicRuntimeConfig } = getConfig()
const qs = require('qs')
var query = qs.stringify({
sort: ['publishedAt:desc'],
pagination: {
page: page,
pageSize: limit
},
populate: {
gallery_images: {
populate: '*'
}
}
})
const galres = await fetch(process.env.API + `galleries?${query}`, {
headers: new Headers({
'Authorization': serverRuntimeConfig.strapi_token,
'Content-Type': 'application/x-www-form-urlencoded'
})
})
return await galres.json()
}
export const getGalleries = async () => {
const { serverRuntimeConfig } = getConfig()
const qs = require('qs')
var query = qs.stringify({
sort: ['publishedAt:desc'],
pagination: {
page: 1,
pageSize: 5,
},
populate: '*'
})
const galres = await fetch(process.env.API + `galleries?${query}`, {
headers: new Headers({
'Authorization': serverRuntimeConfig.strapi_token,
'Content-Type': 'application/x-www-form-urlencoded'
})
})
return await galres.json()
}
export const getGallery = async (gallerySlug) => {
const { serverRuntimeConfig, publicRuntimeConfig } = getConfig()
const qs = require('qs')
var query = qs.stringify({
filters: {
Slug: {
$eq: gallerySlug
}
},
populate: '*'
})
const galres = await fetch(process.env.API + `galleries?${query}`, {
headers: new Headers({
'Authorization': serverRuntimeConfig.strapi_token,
'Content-Type': 'application/x-www-form-urlencoded'
})
})
return await galres.json()
}
export const getAllGalleryImages = async () => {
const { serverRuntimeConfig } = getConfig()
const qs = require('qs')
var query = qs.stringify({
populate: '*'
})
const imageres = await fetch(process.env.API + `gallery-images?${query}`, {
headers: new Headers({
'Authorization': serverRuntimeConfig.strapi_token,
'Content-Type': 'application/x-www-form-urlencoded'
})
})
return imageres.json()
}
export const getLatestGalleryImage = async () => {
const { serverRuntimeConfig } = getConfig()
const qs = require('qs')
var query = qs.stringify({
pagination: {
page: 1,
pageSize: 1
},
populate: '*'
})
const imageres = await fetch(process.env.API + `gallery-images?${query}`, {
headers: new Headers({
'Authorization': serverRuntimeConfig.strapi_token,
'Content-Type': 'application/x-www-form-urlencoded'
})
})
return imageres.json()
}
export const getGalleryImage = async (imageSlug) => {
const { serverRuntimeConfig } = getConfig()
const qs = require('qs')
var query = qs.stringify({
filters: {
Slug: {
$eq: imageSlug
}
},
populate: '*'
})
const imageres = await fetch(process.env.API + `gallery-images?${query}`, {
headers: new Headers({
'Authorization': serverRuntimeConfig.strapi_token,
'Content-Type': 'application/x-www-form-urlencoded'
})
})
return await imageres.json()
}
export const getGalleryImages = async (galleryId, page, limit) => {
const { serverRuntimeConfig } = getConfig()
const qs = require('qs')
if (page == null) {
page = 0
}
var query = qs.stringify({
filters: {
galleries: {
Slug: {
$eq: galleryId
}
}
},
populate: '*',
pagination: {
page: page,
pageSize: limit
}
})
const galres = await fetch(process.env.API + `gallery-images?${query}`, {
headers: new Headers({
'Authorization': serverRuntimeConfig.strapi_token,
'Content-Type': 'application/x-www-form-urlencoded'
})
})
return await galres.json()
}
export const getPodcastList = async (podcastStatus) => {
const { serverRuntimeConfig } = getConfig()
const qs = require('qs')
const query = qs.stringify({
filters: {
status: {
$eq: true
}
},
populate: '*'
}, {
encodeValuesOnly: true,
})
const currpodcastres = await fetch(serverRuntimeConfig.base_path + `podcast-series?${query}`, {
headers: new Headers({
'Authorization': serverRuntimeConfig.strapi_token,
'Content-Type': 'application/x-www-form-urlencoded'
})
})
return await currpodcastres.json()
}
export const getLatestContent = async () => {
const { serverRuntimeConfig } = getConfig()
const qs = require('qs')
const newsQuery = qs.stringify({
filters: {
status: {
$eq: true
},
pagination: {
page: 1,
pageSize: 1
}
},
populate: '*'
}, {
encodeValuesOnly: true,
})
const latestNews = await fetch(serverRuntimeConfig.base_path + `articles?${newsQuery}`, {
headers: new Headers({
'Authorization': serverRuntimeConfig.strapi_token,
'Content-Type': 'application/x-www-form-urlencoded'
})
})
const galleryImageQuery = qs.stringify({
filters: {
status: {
$eq: true
},
pagination: {
page: 1,
pageSize: 1
}
},
populate: '*'
}, {
encodeValuesOnly: true,
})
const latestGalleryImages = await fetch(serverRuntimeConfig.base_path + `gallery_images?${galleryImageQuery}`, {
headers: new Headers({
'Authorization': serverRuntimeConfig.strapi_token,
'Content-Type': 'application/x-www-form-urlencoded'
})
})
const podcastEpisodeQuery = qs.stringify({
filters: {
status: {
$eq: true
},
pagination: {
page: 1,
pageSize: 1
}
},
populate: '*'
}, {
encodeValuesOnly: true,
})
const latestPodcastEpisodes = await fetch(serverRuntimeConfig.base_path + `podcast_episode?${podcastEpisodeQuery}`, {
headers: new Headers({
'Authorization': serverRuntimeConfig.strapi_token,
'Content-Type': 'application/x-www-form-urlencoded'
})
})
const combined = latestNews
return combined
}