Giter VIP home page Giter VIP logo

vue3-fonsecads's People

Contributors

manusaurio avatar

Watchers

 avatar

vue3-fonsecads's Issues

Refactor API interfaces and implement them

// eslint-disable-next-line no-shadow
export enum Rating {
LIKE = 1,
DISLIKE = -1,
UNSET = 0,
}
export interface SpatialPoint {
lat: number,
long: number,
floor: number,
}
export interface Post<T> {
id: number,
content: T,
likes: number,
dislikes: number,
rated: Rating,
location: SpatialPoint,
}
export interface PostResponse extends Post<number> {
content: number,
}
export interface ReadablePost extends Post<Message> {
content: Message,
}
// XXX!!!
export class RateablePost implements ReadablePost {
likes: number;
dislikes: number;
rated: Rating;
constructor(
readonly id: number,
readonly content: Message,
likes: number,
dislikes: number,
rated: Rating,
readonly location: SpatialPoint,
) {
this.id = id;
this.content = content;
this.likes = likes;
this.dislikes = dislikes;
this.rated = rated;
this.location = { ...location };
}
rate(newRating: Rating.LIKE | Rating.DISLIKE): void {
if (this.rated === newRating) {
this.rated = Rating.UNSET;
if (newRating === Rating.LIKE) this.likes--; else this.dislikes--;
return;
}
if (newRating === Rating.LIKE) {
this.likes += 1;
if (this.rated === Rating.DISLIKE) this.dislikes -= 1;
} else {
this.dislikes += 1;
if (this.rated === Rating.LIKE) this.likes -= 1;
}
this.rated = newRating;
}
}

Callback parameters for things like voting would probably be desirable.

Make Message::toString() function human readable

toString(): string {
// i'm tired and feeling lazy so let's write a one liner
return (this.template1 !== undefined
? templates[Number(this.template1)].replace('***', fillersMap.get(this.filler1) ?? '***') : '')
+ (this.conjunction < NULL_CONJUNCTION
? `, ${conjunctions[Number(this.conjunction)]} ` + (this.template2 !== undefined
? templates[Number(this.template2)].replace('***', fillersMap.get(this.filler2) ?? '***') : '') : '');
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.