0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-02-17 23:44:39 -05:00

Updated api endpoints to use new member endpoints on site

refs https://github.com/TryGhost/members.js/issues/25

- Members endpoints were refactored in core to exist directly on site as `<SITE>/members/api/<RESOURCE>`
- All endpoints needed are now directly on SITE and removes the need for AdminURL
- Init method is updated to read site data from fixtures for local development, as no admin endpoint exists now

Core Refs:
0cba02b370
fa4dfa1b21
c70c49258e
This commit is contained in:
Rish 2020-05-01 17:00:52 +05:30
parent a373239fcb
commit e291e7075b

View file

@ -1,19 +1,12 @@
import * as Fixtures from './fixtures'; import * as Fixtures from './fixtures';
function setupGhostApi({adminUrl}) { function setupGhostApi() {
const ghostPath = 'ghost'; const apiPath = 'members/api';
const ssrPath = 'members/ssr'; const siteUrl = window.location.origin;
const version = 'v3';
adminUrl = adminUrl.replace(/\/$/, '');
let siteUrl = window.location.origin;
function endpointFor({type, resource}) { function endpointFor({type, resource}) {
if (type === 'members') { if (type === 'members') {
return `${adminUrl}/${ghostPath}/api/${version}/members/${resource}/`; return `${siteUrl}/${apiPath}/${resource}/`;
} else if (type === 'admin') {
return `${adminUrl}/${ghostPath}/api/${version}/admin/${resource}/`;
} else if (type === 'ssr') {
return resource ? `${siteUrl}/${ssrPath}/${resource}/` : `${siteUrl}/${ssrPath}/`;
} }
} }
@ -30,7 +23,7 @@ function setupGhostApi({adminUrl}) {
api.site = { api.site = {
read() { read() {
const url = endpointFor({type: 'admin', resource: 'site'}); const url = endpointFor({type: 'members', resource: 'site'});
return makeRequest({ return makeRequest({
url, url,
method: 'GET', method: 'GET',
@ -49,7 +42,7 @@ function setupGhostApi({adminUrl}) {
api.member = { api.member = {
identity() { identity() {
const url = endpointFor({type: 'ssr'}); const url = endpointFor({type: 'members', resource: 'session'});
return makeRequest({ return makeRequest({
url, url,
credentials: 'same-origin' credentials: 'same-origin'
@ -62,7 +55,7 @@ function setupGhostApi({adminUrl}) {
}, },
sessionData() { sessionData() {
const url = endpointFor({type: 'ssr', resource: 'member'}); const url = endpointFor({type: 'members', resource: 'member'});
return makeRequest({ return makeRequest({
url, url,
credentials: 'same-origin' credentials: 'same-origin'
@ -97,7 +90,7 @@ function setupGhostApi({adminUrl}) {
}, },
signout() { signout() {
const url = endpointFor({type: 'ssr'}); const url = endpointFor({type: 'members', resource: 'session'});
return makeRequest({ return makeRequest({
url, url,
method: 'DELETE' method: 'DELETE'
@ -149,16 +142,14 @@ function setupGhostApi({adminUrl}) {
}; };
api.init = async () => { api.init = async () => {
const {site} = await api.site.read();
// Update site url from site data instead of default window.location.origin
siteUrl = site.url.replace(/\/$/, '');
// Load member from fixtures for local development // Load member from fixtures for local development
if (process.env.NODE_ENV === 'development') { if (process.env.NODE_ENV === 'development') {
return {site, member: Fixtures.member.free}; return {site: Fixtures.site, member: Fixtures.member.free};
} }
const {site} = await api.site.read();
const member = await api.member.sessionData(); const member = await api.member.sessionData();
return {site, member}; return {site, member};
}; };