25 lines
750 B
TypeScript
25 lines
750 B
TypeScript
import { fail } from '@sveltejs/kit';
|
|
import { authedAction } from '$lib/server/api';
|
|
|
|
const setFollowing = (follow: boolean) =>
|
|
authedAction(async ({ api, params }) => {
|
|
const id = params.id ?? '';
|
|
if (!id) return fail(400, { message: 'Falta el usuario.' });
|
|
|
|
const options = { params: { path: { id } } };
|
|
const { error } = follow
|
|
? await api.POST('/users/{id}/follow', options)
|
|
: await api.DELETE('/users/{id}/follow', options);
|
|
|
|
if (error) {
|
|
return fail(502, {
|
|
message: follow ? 'No se pudo seguir al usuario.' : 'No se pudo dejar de seguir al usuario.'
|
|
});
|
|
}
|
|
|
|
return { following: follow, userId: id };
|
|
});
|
|
|
|
export const followUserAction = setFollowing(true);
|
|
export const unfollowUserAction = setFollowing(false);
|