Added style formatting into apistore

This commit is contained in:
orangemug
2020-01-19 20:05:11 +00:00
parent 6c240d53e4
commit 6b45dc8b4d
3 changed files with 26 additions and 12 deletions

View File

@@ -1,4 +1,5 @@
import style from './style.js'
import {format} from '@mapbox/mapbox-gl-style-spec'
import ReconnectingWebSocket from 'reconnecting-websocket'
export class ApiStyleStore {
@@ -64,6 +65,12 @@ export class ApiStyleStore {
// Save current style replacing previous version
save(mapStyle) {
const styleJSON = format(
style.stripAccessTokens(
style.replaceAccessTokens(newStyle)
)
);
const id = mapStyle.id
fetch(this.localUrl + '/styles/' + id, {
method: "PUT",
@@ -71,7 +78,7 @@ export class ApiStyleStore {
headers: {
"Content-Type": "application/json; charset=utf-8",
},
body: JSON.stringify(mapStyle)
body: styleJSON
})
.catch(function(error) {
if(error) console.error(error)

View File

@@ -114,6 +114,18 @@ function replaceAccessTokens(mapStyle, opts={}) {
return changedStyle
}
function stripAccessTokens(mapStyle) {
const changedMetadata = {
...mapStyle.metadata
};
delete changedMetadata['maputnik:mapbox_access_token'];
delete changedMetadata['maputnik:openmaptiles_access_token'];
return {
...mapStyle,
metadata: changedMetadata
};
}
export default {
ensureStyleValidity,
emptyStyle,
@@ -121,4 +133,5 @@ export default {
generateId,
getAccessToken,
replaceAccessTokens,
stripAccessTokens,
}