/*
* Copyright (C) 2008-2020, Juick
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
package ru.sape;
import com.juick.www.ad.models.Site;
import org.apache.commons.lang3.StringUtils;
import java.net.URI;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
public class SapePageLinks {
private final boolean showCode;
private final String linkDelimiter;
private final List pageLinks;
public SapePageLinks(Site site, String sapeUser, URI request, String sapeCookie) {
String req = StringUtils.isNotEmpty(request.getQuery()) ? request.getPath() + "?" + request.getQuery()
: request.getPath();
linkDelimiter = site.delimiter();
this.showCode = sapeUser.equals(sapeCookie);
if (showCode) {
pageLinks = Collections.singletonList(site.code());
} else {
pageLinks = site.pages().stream().filter(page -> page.uri().equals(req))
.flatMap(page -> page.links().stream()).collect(Collectors.toList());
}
}
public String render() {
StringBuilder s = new StringBuilder();
s.append(String.join(linkDelimiter, pageLinks));
if (showCode) {
s.insert(0, "");
s.append("");
}
return s.toString();
}
}