Loading .gitignore 0 → 100644 +12 −0 Original line number Diff line number Diff line # Maven pom.xml.versionsBackup target # Eclipse .project .classpath .settings # Visual Studio Code .factorypath buxfer-public-rest-api/pom.xml 0 → 100644 +64 −0 Original line number Diff line number Diff line <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.inteligr8.buxfer</groupId> <artifactId>buxfer-public-rest-api</artifactId> <version>1.0-SNAPSHOT</version> <name>Buxfer ReST API for Java</name> <properties> <project.build.sourceEncoding>utf-8</project.build.sourceEncoding> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>jakarta.ws.rs</groupId> <artifactId>jakarta.ws.rs-api</artifactId> <version>2.1.6</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.module</groupId> <artifactId>jackson-module-jaxb-annotations</artifactId> <version>2.12.2</version> </dependency> </dependencies> <build> <plugins> <plugin> <artifactId>maven-javadoc-plugin</artifactId> <executions> <execution> <id>javadoc</id> <phase>package</phase> <goals><goal>jar</goal></goals> <configuration> <show>public</show> </configuration> </execution> </executions> </plugin> </plugins> </build> <repositories> <repository> <id>inteligr8-public</id> <url>https://repos.inteligr8.com/nexus/repository/inteligr8-public</url> </repository> </repositories> <distributionManagement> <repository> <id>inteligr8-releases</id> <url>https://repos.inteligr8.com/nexus/repository/inteligr8-public</url> </repository> <snapshotRepository> <id>inteligr8-snapshots</id> <url>https://repos.inteligr8.com/nexus/repository/inteligr8-snapshots</url> </snapshotRepository> </distributionManagement> </project> buxfer-public-rest-api/src/main/java/com/inteligr8/buxfer/BuxferPublicRestApi.java 0 → 100644 +15 −0 Original line number Diff line number Diff line package com.inteligr8.buxfer; import com.inteligr8.buxfer.api.CommandApi; /** * This interface consolidates the JAX-RS APIs available in the Buxfer Public * ReST API. * * @author brian@inteligr8.com */ public interface BuxferPublicRestApi { CommandApi getCommandApi(); } buxfer-public-rest-api/src/main/java/com/inteligr8/buxfer/api/CommandApi.java 0 → 100644 +187 −0 Original line number Diff line number Diff line package com.inteligr8.buxfer.api; import java.time.LocalDate; import java.time.YearMonth; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import com.inteligr8.buxfer.model.AccountsResponse; import com.inteligr8.buxfer.model.BudgetsResponse; import com.inteligr8.buxfer.model.ContactsResponse; import com.inteligr8.buxfer.model.GroupsResponse; import com.inteligr8.buxfer.model.LoansResponse; import com.inteligr8.buxfer.model.RemindersResponse; import com.inteligr8.buxfer.model.Response; import com.inteligr8.buxfer.model.TagsResponse; import com.inteligr8.buxfer.model.Transaction.Status; import com.inteligr8.buxfer.model.TransactionsResponse; @Path("/api") public interface CommandApi { @GET @Path("/transactions") @Produces({ "application/json" }) public Response<TransactionsResponse> getTransactions( @QueryParam("startDate") LocalDate startDate, @QueryParam("endDate") LocalDate endDate, @QueryParam("status") Status status, @QueryParam("page") int page); @GET @Path("/transactions") @Produces({ "application/json" }) public Response<TransactionsResponse> getTransactionsInTag( @QueryParam("tagName") String tagName, @QueryParam("startDate") LocalDate startDate, @QueryParam("endDate") LocalDate endDate, @QueryParam("status") Status status, @QueryParam("page") int page); @GET @Path("/transactions") @Produces({ "application/json" }) public Response<TransactionsResponse> getTransactionsInAccount( @QueryParam("accountName") String accountName, @QueryParam("startDate") LocalDate startDate, @QueryParam("endDate") LocalDate endDate, @QueryParam("status") Status status, @QueryParam("page") int page); @GET @Path("/transactions") @Produces({ "application/json" }) public Response<TransactionsResponse> getTransactions( @QueryParam("accountName") String accountName, @QueryParam("tagName") String tagName, @QueryParam("startDate") LocalDate startDate, @QueryParam("endDate") LocalDate endDate, @QueryParam("budgetName") String budgetName, @QueryParam("contactName") String contactName, @QueryParam("groupName") String groupName, @QueryParam("status") Status status, @QueryParam("page") int page); @GET @Path("/transactions") @Produces({ "application/json" }) public Response<TransactionsResponse> getTransactions( @QueryParam("accountName") String accountName, @QueryParam("tagName") String tagName, @QueryParam("startDate") YearMonth month, @QueryParam("budgetName") String budgetName, @QueryParam("contactName") String contactName, @QueryParam("groupName") String groupName, @QueryParam("status") Status status, @QueryParam("page") int page); @GET @Path("/transactions") @Produces({ "application/json" }) public Response<TransactionsResponse> getTransactionsByIds( @QueryParam("accountId") String accountId, @QueryParam("tagId") String tagId, @QueryParam("startDate") LocalDate startDate, @QueryParam("endDate") LocalDate endDate, @QueryParam("budgetId") String budgetId, @QueryParam("contactId") String contactId, @QueryParam("groupId") String groupId, @QueryParam("status") Status status, @QueryParam("page") int page); @GET @Path("/transactions") @Produces({ "application/json" }) public Response<TransactionsResponse> getTransactionsByIds( @QueryParam("accountId") String accountId, @QueryParam("tagId") String tagId, @QueryParam("startDate") YearMonth month, @QueryParam("budgetId") String budgetId, @QueryParam("contactId") String contactId, @QueryParam("groupId") String groupId, @QueryParam("status") Status status, @QueryParam("page") int page); @GET @Path("/transactions") @Produces({ "application/json" }) public Response<TransactionsResponse> getTransactions( @QueryParam("accountId") String accountId, @QueryParam("accountName") String accountName, @QueryParam("tagId") String tagId, @QueryParam("tagName") String tagName, @QueryParam("startDate") LocalDate startDate, @QueryParam("endDate") LocalDate endDate, @QueryParam("budgetId") String budgetId, @QueryParam("budgetName") String budgetName, @QueryParam("contactId") String contactId, @QueryParam("contactName") String contactName, @QueryParam("groupId") String groupId, @QueryParam("groupName") String groupName, @QueryParam("status") Status status, @QueryParam("page") int page); @GET @Path("/transactions") @Produces({ "application/json" }) public Response<TransactionsResponse> getTransactions( @QueryParam("accountId") String accountId, @QueryParam("accountName") String accountName, @QueryParam("tagId") String tagId, @QueryParam("tagName") String tagName, @QueryParam("month") YearMonth month, @QueryParam("budgetId") String budgetId, @QueryParam("budgetName") String budgetName, @QueryParam("contactId") String contactId, @QueryParam("contactName") String contactName, @QueryParam("groupId") String groupId, @QueryParam("groupName") String groupName, @QueryParam("status") Status status, @QueryParam("page") int page); @GET @Path("/transactions") @Produces({ "application/json" }) public String getJson( @QueryParam("accountName") String accountName, @QueryParam("page") int page); @GET @Path("/accounts") @Produces({ "application/json" }) public Response<AccountsResponse> getAccounts(); @GET @Path("/loans") @Produces({ "application/json" }) public Response<LoansResponse> getLoans(); @GET @Path("/tags") @Produces({ "application/json" }) public Response<TagsResponse> getTags(); @GET @Path("/budgets") @Produces({ "application/json" }) public Response<BudgetsResponse> getBudgets(); @GET @Path("/reminders") @Produces({ "application/json" }) public Response<RemindersResponse> getReminders(); @GET @Path("/groups") @Produces({ "application/json" }) public Response<GroupsResponse> getGroups(); @GET @Path("/contacts") @Produces({ "application/json" }) public Response<ContactsResponse> getContacts(); } buxfer-public-rest-api/src/main/java/com/inteligr8/buxfer/api/SecurityApi.java 0 → 100644 +21 −0 Original line number Diff line number Diff line package com.inteligr8.buxfer.api; import javax.ws.rs.FormParam; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import com.inteligr8.buxfer.model.Response; import com.inteligr8.buxfer.model.TokenResponse; @Path("/api") public interface SecurityApi { @POST @Path("/login") @Produces({ "application/json" }) public Response<TokenResponse> login( @FormParam("email") String email, @FormParam("password") String password); } Loading
.gitignore 0 → 100644 +12 −0 Original line number Diff line number Diff line # Maven pom.xml.versionsBackup target # Eclipse .project .classpath .settings # Visual Studio Code .factorypath
buxfer-public-rest-api/pom.xml 0 → 100644 +64 −0 Original line number Diff line number Diff line <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.inteligr8.buxfer</groupId> <artifactId>buxfer-public-rest-api</artifactId> <version>1.0-SNAPSHOT</version> <name>Buxfer ReST API for Java</name> <properties> <project.build.sourceEncoding>utf-8</project.build.sourceEncoding> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>jakarta.ws.rs</groupId> <artifactId>jakarta.ws.rs-api</artifactId> <version>2.1.6</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.module</groupId> <artifactId>jackson-module-jaxb-annotations</artifactId> <version>2.12.2</version> </dependency> </dependencies> <build> <plugins> <plugin> <artifactId>maven-javadoc-plugin</artifactId> <executions> <execution> <id>javadoc</id> <phase>package</phase> <goals><goal>jar</goal></goals> <configuration> <show>public</show> </configuration> </execution> </executions> </plugin> </plugins> </build> <repositories> <repository> <id>inteligr8-public</id> <url>https://repos.inteligr8.com/nexus/repository/inteligr8-public</url> </repository> </repositories> <distributionManagement> <repository> <id>inteligr8-releases</id> <url>https://repos.inteligr8.com/nexus/repository/inteligr8-public</url> </repository> <snapshotRepository> <id>inteligr8-snapshots</id> <url>https://repos.inteligr8.com/nexus/repository/inteligr8-snapshots</url> </snapshotRepository> </distributionManagement> </project>
buxfer-public-rest-api/src/main/java/com/inteligr8/buxfer/BuxferPublicRestApi.java 0 → 100644 +15 −0 Original line number Diff line number Diff line package com.inteligr8.buxfer; import com.inteligr8.buxfer.api.CommandApi; /** * This interface consolidates the JAX-RS APIs available in the Buxfer Public * ReST API. * * @author brian@inteligr8.com */ public interface BuxferPublicRestApi { CommandApi getCommandApi(); }
buxfer-public-rest-api/src/main/java/com/inteligr8/buxfer/api/CommandApi.java 0 → 100644 +187 −0 Original line number Diff line number Diff line package com.inteligr8.buxfer.api; import java.time.LocalDate; import java.time.YearMonth; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import com.inteligr8.buxfer.model.AccountsResponse; import com.inteligr8.buxfer.model.BudgetsResponse; import com.inteligr8.buxfer.model.ContactsResponse; import com.inteligr8.buxfer.model.GroupsResponse; import com.inteligr8.buxfer.model.LoansResponse; import com.inteligr8.buxfer.model.RemindersResponse; import com.inteligr8.buxfer.model.Response; import com.inteligr8.buxfer.model.TagsResponse; import com.inteligr8.buxfer.model.Transaction.Status; import com.inteligr8.buxfer.model.TransactionsResponse; @Path("/api") public interface CommandApi { @GET @Path("/transactions") @Produces({ "application/json" }) public Response<TransactionsResponse> getTransactions( @QueryParam("startDate") LocalDate startDate, @QueryParam("endDate") LocalDate endDate, @QueryParam("status") Status status, @QueryParam("page") int page); @GET @Path("/transactions") @Produces({ "application/json" }) public Response<TransactionsResponse> getTransactionsInTag( @QueryParam("tagName") String tagName, @QueryParam("startDate") LocalDate startDate, @QueryParam("endDate") LocalDate endDate, @QueryParam("status") Status status, @QueryParam("page") int page); @GET @Path("/transactions") @Produces({ "application/json" }) public Response<TransactionsResponse> getTransactionsInAccount( @QueryParam("accountName") String accountName, @QueryParam("startDate") LocalDate startDate, @QueryParam("endDate") LocalDate endDate, @QueryParam("status") Status status, @QueryParam("page") int page); @GET @Path("/transactions") @Produces({ "application/json" }) public Response<TransactionsResponse> getTransactions( @QueryParam("accountName") String accountName, @QueryParam("tagName") String tagName, @QueryParam("startDate") LocalDate startDate, @QueryParam("endDate") LocalDate endDate, @QueryParam("budgetName") String budgetName, @QueryParam("contactName") String contactName, @QueryParam("groupName") String groupName, @QueryParam("status") Status status, @QueryParam("page") int page); @GET @Path("/transactions") @Produces({ "application/json" }) public Response<TransactionsResponse> getTransactions( @QueryParam("accountName") String accountName, @QueryParam("tagName") String tagName, @QueryParam("startDate") YearMonth month, @QueryParam("budgetName") String budgetName, @QueryParam("contactName") String contactName, @QueryParam("groupName") String groupName, @QueryParam("status") Status status, @QueryParam("page") int page); @GET @Path("/transactions") @Produces({ "application/json" }) public Response<TransactionsResponse> getTransactionsByIds( @QueryParam("accountId") String accountId, @QueryParam("tagId") String tagId, @QueryParam("startDate") LocalDate startDate, @QueryParam("endDate") LocalDate endDate, @QueryParam("budgetId") String budgetId, @QueryParam("contactId") String contactId, @QueryParam("groupId") String groupId, @QueryParam("status") Status status, @QueryParam("page") int page); @GET @Path("/transactions") @Produces({ "application/json" }) public Response<TransactionsResponse> getTransactionsByIds( @QueryParam("accountId") String accountId, @QueryParam("tagId") String tagId, @QueryParam("startDate") YearMonth month, @QueryParam("budgetId") String budgetId, @QueryParam("contactId") String contactId, @QueryParam("groupId") String groupId, @QueryParam("status") Status status, @QueryParam("page") int page); @GET @Path("/transactions") @Produces({ "application/json" }) public Response<TransactionsResponse> getTransactions( @QueryParam("accountId") String accountId, @QueryParam("accountName") String accountName, @QueryParam("tagId") String tagId, @QueryParam("tagName") String tagName, @QueryParam("startDate") LocalDate startDate, @QueryParam("endDate") LocalDate endDate, @QueryParam("budgetId") String budgetId, @QueryParam("budgetName") String budgetName, @QueryParam("contactId") String contactId, @QueryParam("contactName") String contactName, @QueryParam("groupId") String groupId, @QueryParam("groupName") String groupName, @QueryParam("status") Status status, @QueryParam("page") int page); @GET @Path("/transactions") @Produces({ "application/json" }) public Response<TransactionsResponse> getTransactions( @QueryParam("accountId") String accountId, @QueryParam("accountName") String accountName, @QueryParam("tagId") String tagId, @QueryParam("tagName") String tagName, @QueryParam("month") YearMonth month, @QueryParam("budgetId") String budgetId, @QueryParam("budgetName") String budgetName, @QueryParam("contactId") String contactId, @QueryParam("contactName") String contactName, @QueryParam("groupId") String groupId, @QueryParam("groupName") String groupName, @QueryParam("status") Status status, @QueryParam("page") int page); @GET @Path("/transactions") @Produces({ "application/json" }) public String getJson( @QueryParam("accountName") String accountName, @QueryParam("page") int page); @GET @Path("/accounts") @Produces({ "application/json" }) public Response<AccountsResponse> getAccounts(); @GET @Path("/loans") @Produces({ "application/json" }) public Response<LoansResponse> getLoans(); @GET @Path("/tags") @Produces({ "application/json" }) public Response<TagsResponse> getTags(); @GET @Path("/budgets") @Produces({ "application/json" }) public Response<BudgetsResponse> getBudgets(); @GET @Path("/reminders") @Produces({ "application/json" }) public Response<RemindersResponse> getReminders(); @GET @Path("/groups") @Produces({ "application/json" }) public Response<GroupsResponse> getGroups(); @GET @Path("/contacts") @Produces({ "application/json" }) public Response<ContactsResponse> getContacts(); }
buxfer-public-rest-api/src/main/java/com/inteligr8/buxfer/api/SecurityApi.java 0 → 100644 +21 −0 Original line number Diff line number Diff line package com.inteligr8.buxfer.api; import javax.ws.rs.FormParam; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import com.inteligr8.buxfer.model.Response; import com.inteligr8.buxfer.model.TokenResponse; @Path("/api") public interface SecurityApi { @POST @Path("/login") @Produces({ "application/json" }) public Response<TokenResponse> login( @FormParam("email") String email, @FormParam("password") String password); }