Merge branch 'master' into v0.2
This commit is contained in:
commit
72e1529b81
@ -1,7 +1,7 @@
|
|||||||
language: node_js
|
language: node_js
|
||||||
node_js: '11'
|
node_js: '11'
|
||||||
|
|
||||||
dist: xenial
|
dist: trusty
|
||||||
sudo: required
|
sudo: required
|
||||||
|
|
||||||
addons:
|
addons:
|
||||||
|
20
CHANGELOG.md
20
CHANGELOG.md
@ -1,22 +1,24 @@
|
|||||||
# Change log
|
# Change log
|
||||||
|
|
||||||
## Version 0.1.1 - Fix and improvements (2019/01/xx)
|
## Version 0.1.1 - Fix and improvements (2019/02/07)
|
||||||
|
|
||||||
### Issues Closed
|
### Issues Closed
|
||||||
|
|
||||||
#### Bugs Fixed
|
|
||||||
|
|
||||||
* [#31](https://github.com/SamR1/FitTrackee/issues/31) - Use moving duration for stats
|
|
||||||
* [#29](https://github.com/SamR1/FitTrackee/issues/29) - Pause duration calculation with segments
|
|
||||||
* [#26](https://github.com/SamR1/FitTrackee/issues/26) - Total is incorrect in tooltip when duration is displayed
|
|
||||||
* [#24](https://github.com/SamR1/FitTrackee/issues/24) - Some distances are not displayed correctly on current month statistics
|
|
||||||
|
|
||||||
#### New Features
|
#### New Features
|
||||||
|
|
||||||
* [#25](https://github.com/SamR1/FitTrackee/issues/25) - Display records on calendar
|
* [#25](https://github.com/SamR1/FitTrackee/issues/25) - Display records on calendar
|
||||||
* [#22](https://github.com/SamR1/FitTrackee/issues/22) - Add a total on current month statistics
|
* [#22](https://github.com/SamR1/FitTrackee/issues/22) - Add a total on current month statistics
|
||||||
|
|
||||||
In this release 6 issues were closed.
|
#### Bugs Fixed
|
||||||
|
|
||||||
|
* [#31](https://github.com/SamR1/FitTrackee/issues/31) - Use moving duration for stats
|
||||||
|
* [#29](https://github.com/SamR1/FitTrackee/issues/29) - Pause duration calculation with segments
|
||||||
|
* [#28](https://github.com/SamR1/FitTrackee/issues/28) - Error on uploading gpx file
|
||||||
|
* [#26](https://github.com/SamR1/FitTrackee/issues/26) - Total is incorrect in tooltip when duration is displayed
|
||||||
|
* [#24](https://github.com/SamR1/FitTrackee/issues/24) - Some distances are not displayed correctly on current month statistics
|
||||||
|
|
||||||
|
|
||||||
|
In this release 7 issues were closed.
|
||||||
|
|
||||||
|
|
||||||
## Version 0.1 - Minimal version (2018-07-04)
|
## Version 0.1 - Minimal version (2018-07-04)
|
||||||
|
@ -27,7 +27,7 @@ export const getOrUpdateData = (action, target, data) => dispatch => {
|
|||||||
if (ret.status === 'success') {
|
if (ret.status === 'success') {
|
||||||
dispatch(setData(target, ret.data))
|
dispatch(setData(target, ret.data))
|
||||||
} else {
|
} else {
|
||||||
dispatch(setError(`${target}: ${ret.message}`))
|
dispatch(setError(`${target}: ${ret.message || ret.status}`))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(error => dispatch(setError(`${target}: ${error}`)))
|
.catch(error => dispatch(setError(`${target}: ${error}`)))
|
||||||
@ -54,7 +54,7 @@ export const deleteData = (target, id) => dispatch => {
|
|||||||
if (ret.status === 204) {
|
if (ret.status === 204) {
|
||||||
history.push(`/admin/${target}`)
|
history.push(`/admin/${target}`)
|
||||||
} else {
|
} else {
|
||||||
dispatch(setError(`${target}: ${ret.message}`))
|
dispatch(setError(`${target}: ${ret.message || ret.status}`))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(error => dispatch(setError(`${target}: ${error}`)))
|
.catch(error => dispatch(setError(`${target}: ${error}`)))
|
||||||
|
@ -1,10 +1,9 @@
|
|||||||
import { apiUrl, createRequest } from '../utils'
|
import { createApiRequest } from '../utils'
|
||||||
|
|
||||||
export default class FitTrackeeApi {
|
export default class FitTrackeeApi {
|
||||||
|
|
||||||
static getData(target,
|
static getData(target, data = {}) {
|
||||||
data = {}) {
|
let url = target
|
||||||
let url = `${apiUrl}${target}`
|
|
||||||
if (data.id) {
|
if (data.id) {
|
||||||
url = `${url}/${data.id}`
|
url = `${url}/${data.id}`
|
||||||
} else if (Object.keys(data).length > 0) {
|
} else if (Object.keys(data).length > 0) {
|
||||||
@ -16,54 +15,54 @@ export default class FitTrackeeApi {
|
|||||||
method: 'GET',
|
method: 'GET',
|
||||||
type: 'application/json',
|
type: 'application/json',
|
||||||
}
|
}
|
||||||
return createRequest(params)
|
return createApiRequest(params)
|
||||||
}
|
}
|
||||||
|
|
||||||
static addData(target, data) {
|
static addData(target, data) {
|
||||||
const params = {
|
const params = {
|
||||||
url: `${apiUrl}${target}`,
|
url: target,
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
body: data,
|
body: data,
|
||||||
type: 'application/json',
|
type: 'application/json',
|
||||||
}
|
}
|
||||||
return createRequest(params)
|
return createApiRequest(params)
|
||||||
}
|
}
|
||||||
|
|
||||||
static addDataWithFile(target, data) {
|
static addDataWithFile(target, data) {
|
||||||
const params = {
|
const params = {
|
||||||
url: `${apiUrl}${target}`,
|
url: target,
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
body: data,
|
body: data,
|
||||||
}
|
}
|
||||||
return createRequest(params)
|
return createApiRequest(params)
|
||||||
}
|
}
|
||||||
|
|
||||||
static postData(target, data) {
|
static postData(target, data) {
|
||||||
const params = {
|
const params = {
|
||||||
url: `${apiUrl}${target}${data.id ? `/${data.id}` : '' }`,
|
url: `${target}${data.id ? `/${data.id}` : '' }`,
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
body: data,
|
body: data,
|
||||||
type: 'application/json',
|
type: 'application/json',
|
||||||
}
|
}
|
||||||
return createRequest(params)
|
return createApiRequest(params)
|
||||||
}
|
}
|
||||||
|
|
||||||
static updateData(target, data) {
|
static updateData(target, data) {
|
||||||
const params = {
|
const params = {
|
||||||
url: `${apiUrl}${target}/${data.id}`,
|
url: `${target}/${data.id}`,
|
||||||
method: 'PATCH',
|
method: 'PATCH',
|
||||||
body: data,
|
body: data,
|
||||||
type: 'application/json',
|
type: 'application/json',
|
||||||
}
|
}
|
||||||
return createRequest(params)
|
return createApiRequest(params)
|
||||||
}
|
}
|
||||||
|
|
||||||
static deleteData(target, id) {
|
static deleteData(target, id) {
|
||||||
const params = {
|
const params = {
|
||||||
url: `${apiUrl}${target}/${id}`,
|
url: `${target}/${id}`,
|
||||||
method: 'DELETE',
|
method: 'DELETE',
|
||||||
type: 'application/json',
|
type: 'application/json',
|
||||||
}
|
}
|
||||||
return createRequest(params)
|
return createApiRequest(params)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,23 +1,23 @@
|
|||||||
import { apiUrl, createRequest } from '../utils'
|
import { createApiRequest } from '../utils'
|
||||||
|
|
||||||
export default class FitTrackeeApi {
|
export default class FitTrackeeApi {
|
||||||
|
|
||||||
static loginOrRegister(target, data) {
|
static loginOrRegister(target, data) {
|
||||||
const params = {
|
const params = {
|
||||||
url: `${apiUrl}auth/${target}`,
|
url: `auth/${target}`,
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
noAuthorization: true,
|
noAuthorization: true,
|
||||||
body: data,
|
body: data,
|
||||||
type: 'application/json',
|
type: 'application/json',
|
||||||
}
|
}
|
||||||
return createRequest(params)
|
return createApiRequest(params)
|
||||||
}
|
}
|
||||||
|
|
||||||
static deletePicture() {
|
static deletePicture() {
|
||||||
const params = {
|
const params = {
|
||||||
url: `${apiUrl}auth/picture`,
|
url: 'auth/picture',
|
||||||
method: 'DELETE',
|
method: 'DELETE',
|
||||||
}
|
}
|
||||||
return createRequest(params)
|
return createApiRequest(params)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,7 @@ export const generateIds = arr => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
export const createRequest = params => {
|
export const createApiRequest = params => {
|
||||||
const headers = {}
|
const headers = {}
|
||||||
if (!params.noAuthorization) {
|
if (!params.noAuthorization) {
|
||||||
headers.Authorization = `Bearer ${
|
headers.Authorization = `Bearer ${
|
||||||
@ -38,12 +38,15 @@ export const createRequest = params => {
|
|||||||
} else if (params.body) {
|
} else if (params.body) {
|
||||||
requestParams.body = params.body
|
requestParams.body = params.body
|
||||||
}
|
}
|
||||||
const request = new Request(params.url, requestParams)
|
const request = new Request(`${apiUrl}${params.url}`, requestParams)
|
||||||
return fetch(request)
|
return fetch(request)
|
||||||
.then(response => params.method === 'DELETE'
|
.then(response => params.method === 'DELETE'
|
||||||
? response
|
? response
|
||||||
: response.json())
|
: response.json())
|
||||||
.catch(error => error)
|
.catch(error => {
|
||||||
|
console.error(error)
|
||||||
|
return new Error('An error occurred. Please contact the administrator.')
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user