import { API_URL } from '../Config'
import { Fetch, HEADERS } from './TokenManager'
const createChore = userID => {
return Fetch(`${API_URL}/chores/`, {
method: 'POST',
headers: HEADERS(),
body: JSON.stringify({
createdBy: Number(userID),
}),
}).then(response => response.json())
}
const signUp = (username, password, displayName, email) => {
return fetch(`${API_URL}/auth/`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({ username, password, displayName, email }),
})
}
const login = (username, password) => {
return fetch(`${API_URL}/auth/login`, {
headers: {
'Content-Type': 'application/json',
},
method: 'POST',
body: JSON.stringify({ username, password }),
})
}
const GetAllUsers = () => {
return fetch(`${API_URL}/users/`, {
method: 'GET',
headers: HEADERS(),
})
}
const GetChores = () => {
return Fetch(`${API_URL}/chores/`, {
method: 'GET',
headers: HEADERS(),
})
}
const GetChoreByID = id => {
return Fetch(`${API_URL}/chores/${id}`, {
method: 'GET',
headers: HEADERS(),
})
}
const GetChoreDetailById = id => {
return Fetch(`${API_URL}/chores/${id}/details`, {
method: 'GET',
headers: HEADERS(),
})
}
const MarkChoreComplete = id => {
return Fetch(`${API_URL}/chores/${id}/do`, {
method: 'POST',
headers: HEADERS(),
})
}
const CreateChore = chore => {
return Fetch(`${API_URL}/chores/`, {
method: 'POST',
headers: HEADERS(),
body: JSON.stringify(chore),
})
}
const DeleteChore = id => {
return Fetch(`${API_URL}/chores/${id}`, {
method: 'DELETE',
headers: HEADERS(),
})
}
const SaveChore = chore => {
console.log('chore', chore)
return Fetch(`${API_URL}/chores/`, {
method: 'PUT',
headers: HEADERS(),
body: JSON.stringify(chore),
})
}
const GetChoreHistory = choreId => {
return Fetch(`${API_URL}/chores/${choreId}/history`, {
method: 'GET',
headers: HEADERS(),
})
}
const GetAllCircleMembers = () => {
return Fetch(`${API_URL}/circles/members`, {
method: 'GET',
headers: HEADERS(),
})
}
const GetUserProfile = () => {
return Fetch(`${API_URL}/users/profile`, {
method: 'GET',
headers: HEADERS(),
})
}
const GetUserCircle = () => {
return Fetch(`${API_URL}/circles/`, {
method: 'GET',
headers: HEADERS(),
})
}
const JoinCircle = inviteCode => {
return Fetch(`${API_URL}/circles/join?invite_code=${inviteCode}`, {
method: 'POST',
headers: HEADERS(),
})
}
const GetCircleMemberRequests = () => {
return Fetch(`${API_URL}/circles/members/requests`, {
method: 'GET',
headers: HEADERS(),
})
}
const AcceptCircleMemberRequest = id => {
return Fetch(`${API_URL}/circles/members/requests/accept?requestId=${id}`, {
method: 'PUT',
headers: HEADERS(),
})
}
const LeaveCircle = id => {
return Fetch(`${API_URL}/circles/leave?circle_id=${id}`, {
method: 'DELETE',
headers: HEADERS(),
})
}
const DeleteCircleMember = (circleID, memberID) => {
return Fetch(
`${API_URL}/circles/${circleID}/members/delete?member_id=${memberID}`,
{
method: 'DELETE',
headers: HEADERS(),
},
)
}
const UpdateUserDetails = userDetails => {
return Fetch(`${API_URL}/users`, {
method: 'PUT',
headers: HEADERS(),
body: JSON.stringify(userDetails),
})
}
const GetSubscriptionSession = () => {
return Fetch(API_URL + `/payments/create-subscription`, {
method: 'GET',
headers: HEADERS(),
})
}
const CancelSubscription = () => {
return Fetch(API_URL + `/payments/cancel-subscription`, {
method: 'POST',
headers: HEADERS(),
})
}
const GetThings = () => {
return Fetch(`${API_URL}/things`, {
method: 'GET',
headers: HEADERS(),
})
}
const CreateThing = thing => {
return Fetch(`${API_URL}/things`, {
method: 'POST',
headers: HEADERS(),
body: JSON.stringify(thing),
})
}
const SaveThing = thing => {
return Fetch(`${API_URL}/things`, {
method: 'PUT',
headers: HEADERS(),
body: JSON.stringify(thing),
})
}
const UpdateThingState = thing => {
return Fetch(`${API_URL}/things/${thing.id}/state?value=${thing.state}`, {
method: 'PUT',
headers: HEADERS(),
})
}
const DeleteThing = id => {
return Fetch(`${API_URL}/things/${id}`, {
method: 'DELETE',
headers: HEADERS(),
})
}
const GetThingHistory = (id, offset) => {
return Fetch(`${API_URL}/things/${id}/history?offset=${offset}`, {
method: 'GET',
headers: HEADERS(),
})
}
const CreateLongLiveToken = name => {
return Fetch(`${API_URL}/users/tokens`, {
method: 'POST',
headers: HEADERS(),
body: JSON.stringify({ name }),
})
}
const DeleteLongLiveToken = id => {
return Fetch(`${API_URL}/users/tokens/${id}`, {
method: 'DELETE',
headers: HEADERS(),
})
}
const GetLongLiveTokens = () => {
return Fetch(`${API_URL}/users/tokens`, {
method: 'GET',
headers: HEADERS(),
})
}
export {
AcceptCircleMemberRequest,
CancelSubscription,
createChore,
CreateChore,
CreateLongLiveToken,
CreateThing,
DeleteChore,
DeleteCircleMember,
DeleteLongLiveToken,
DeleteThing,
GetAllCircleMembers,
GetAllUsers,
GetChoreByID,
GetChoreDetailById,
GetChoreHistory,
GetChores,
GetCircleMemberRequests,
GetLongLiveTokens,
GetSubscriptionSession,
GetThingHistory,
GetThings,
GetUserCircle,
GetUserProfile,
JoinCircle,
LeaveCircle,
login,
MarkChoreComplete,
SaveChore,
SaveThing,
signUp,
UpdateThingState,
UpdateUserDetails,
}